Releases: ultraq/redhorizon
0.35.0
- The
redhorizon-classic
module is now up on Maven central, allowing Java/JVM developers to use it as a way of reading classic C&C files or decoding C&C file data. Instructions in the README of theredhorizon-classic
project folder. - A paletted sprite shader was created, and is used in the unit viewer so that can now do faction-based palette shifting to show what units would look like for different factions.
0.34.2
- Add native support for M1 macs. This is through Java 17 (the first Java LTS release with native support for the M1 processors) and a custom-built version of the ImGui binaries. As such, Java 17 is now required for this project.
- Restored the paletted PNG -> Dune 2 SHP converter
- Toggle fullscreen mode on double click (Windows only)
0.34.1
- Sort files by name in the explorer when browsing a mix file
- Attempt to determine the type of a file when browsing a mix file in the explorer, allowing it to be previewed
- Added Red Alert video names for when viewing those mix files
- The Red Horizon Explorer is now a subcommand of the Red Horizon CLI, so to use it you now run
./bin/redhorizon explorer
on Mac, or./bin/explorer.bat explorer
on Windows - Project and dependencies now running on Groovy 4.0.0
- Update LWJGL to 3.3.0+ and ImGui to 1.86.0+ for better support of M1 macs (note that this is using Java 11 which only has an x86 release, so will be running using Rosetta)
- Improve UI scaling to go with any OS display scaling settings
0.34.0
Been a good while since I did a release, but thought I should make one to mark some progress. This release has a new CLI tool, what I've dubbed the "Red Horizon Explorer" (run ./bin/explorer
or ./bin/explorer.bat
) whose goal is to be able to browse your file system and C&C's mix files like you would a normal file explorer. I got tired of having to extract files from mix files, or having to know the name of a file in advance inside the mix file just to look at them, so this is something I've wanted to make for a while.
It's OK at browsing the file system, and can currently only peek into Red Alert's Conquer.mix
file (mostly contained unit/structure graphics). This is because the metadata in mix files on what is inside them is rather sparse, so you have to manually build these lookup tables and writing ones for every mix file is quite tedious!
So it's pretty rough for now, but I'm hoping to make lots of improvements in future releases.
0.33.1
- Another rendering performance improvement by bundling several materials into a single one such that it all lives in GPU memory and is rendered in a single draw call. Currently used for drawing all map tiles.
- Move a lot of the graphical effects to shaders to run on the GPU: the scanline effect, and the smooth scaling of low-res graphics to higher resolutions.
0.33.0
0.32.0
- Replaced the OpenGL fixed-function pipeline with a modern shader-based renderer. This opens up Red Horizon to do paletted textures on the GPU. A minimum of OpenGL 4.1 is now needed.
- Added ImGui to include debug info, which was normally emitted in log files, right in the view.
0.31.2
- Upgrade the reflections library which came with a change that removes the large Google Guava dependency - we're now 2MB lighter
- Use the current desktop refresh rate in full screen mode instead of always replacing it with the highest the monitor can do
- Added a resource manager which can search for items inside a directory and all its subdirectories, loosening one restriction of the map viewer only working with my current setup. However, a new restriction is that it doesn't yet work on
.mix
files inside.mix
files, so it's still somewhat specific to my workspace 😅 - Sped up map rendering and reduced memory usage by reusing map tiles already encountered
0.31.1
- Lean on Java's built-in blowfish cipher to replace the BlowfishJ library I'd been using.
- Renamed the unit viewer to a general purpose object viewer, and gave it the ability to view Red Alert mission maps. Currently only works with the directory structure I have for local dev and doesn't work for interior maps.
0.31.0
- Converted the C/C++ code for reading encrypted MIX files to Groovy - no more native platform compilers needed for supporting other platforms
- Rebuilt the file conversion utility (the
convert
CLI tool), which currently supports the following file conversions:- PCX -> CPS
- paletted PNG -> C&C SHP
- Added more options to the media player, including less blurry filtering, a full screen mode, play/pause, and more
- Created a unit/structure viewer which supports a handful of units that I have added configuration files for (see: the
view
CLI tool)