Skip to content

Releases: ultraq/redhorizon

0.35.0

31 Dec 05:36
Compare
Choose a tag to compare
  • 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 the redhorizon-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

17 Jul 09:09
Compare
Choose a tag to compare
  • 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

12 Mar 10:47
Compare
Choose a tag to compare
  • 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

08 Jan 07:19
Compare
Choose a tag to compare

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.

Screen Shot 2022-01-08 at 8 10 51 PM

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

25 Apr 02:32
Compare
Choose a tag to compare
  • 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

02 Apr 05:10
Compare
Choose a tag to compare
  • Merged all of the various CLI tools into a single one. Now each tool is a subcommand of a main redhorizon one.
  • Implemented basic batch rendering and object culling to speed up rendering

0.32.0

15 Mar 10:07
Compare
Choose a tag to compare
  • 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

10 Jan 04:35
Compare
Choose a tag to compare
  • 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

04 Jan 06:01
Compare
Choose a tag to compare
  • 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

28 Dec 03:21
Compare
Choose a tag to compare
  • 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)