Skip to content

0.4.9

Choose a tag to compare

@YuutaTsubasa YuutaTsubasa released this 22 Oct 01:27
· 78 commits to main since this release

This release completes graphics replacement: the 32X's graphics can now be replaced with PNG files too.

  • 32X graphics replacement (Issue #35): the characters, the HUD, objects and the title screen can be replaced, as well as the Mega Drive backgrounds that 0.4.7 covered.

    1. Turn on OPTIONS > EXTRAS > DUMP GRAPHICS (previously DUMP TILES) and play. Each graphic the game draws is saved once to Mods/Textures/Dump:
      • 32X graphics as 32x_<bank>_<frame>.png, for example 32x_02_51.png for a Knuckles frame;
      • Mega Drive tiles as md_<hash>.png, as before.
    2. Copy the ones you want to change into Mods/Textures, keeping their names, and edit them. Keep them palette-indexed.
    3. Each one is drawn instead of the original wherever the game uses it.

    How it behaves:

    • A 32X graphic is named by its place in the game's sprite table, so it is the same file in every level, and for the player and the partner alike.
    • The PNG's colours are the game's own pixel values. The game's colour offsets (player and partner have their own palettes), fades and the per-colour priority over the backgrounds therefore all still apply.
    • Flips, scaling, the stipple transparency and clipping are those of the original draw.
    • A replacement can have a different size than the original. It grows right and down from the original's top-left corner.
    • Only the picture changes; the game plays exactly as without the pack. Anything drawn over a sprite, such as polygons, stays on top as before.

    Details and limits: docs/TEXTURE_MODS.md.

  • Settings: DumpTiles in [Mods] is now DumpGraphics; the old name is still read.

  • For developers: chaotix_headless --tiles DIR loads both kinds of replacement, and --dump-graphics DIR dumps both (--dump-tiles still works).

Limits:

  • Replacements are drawn at the game's resolution; high-resolution packs are not supported yet.
  • The first picture after a pack is loaded, or after returning to the title, is shown without replacements.
  • In a widened level, the title card's bars at a level's start can clear sprite pixels in the margins, with or without a pack.

Thanks to @datadrivezz for the request.

Validation:

  • Windows: all 41 CTest cases pass. The new sprite_pack test dumps the graphics of a level, the title, the hub, the bonus stage and the special stage, in widescreen and 4:3, and loads them back unchanged. Every picture is identical to the run without a pack, and lockstep is bit-identical. A modified pack changes the 32X sprites and leaves the backgrounds and polygons alone.
  • Further checks:
    • Identity packs in Speed Slider, Marina Madness and another special stage gave identical pictures, with lockstep bit-identical.
    • A pack recolouring every Knuckles graphic showed as expected in the app, with lockstep holding.
    • The 33 lockstep runs with random input are bit-identical.
  • Speed: normal play without a pack has no extra cost. A loaded pack costs about 0.1–0.2 ms a frame on the development PC.
  • Linux: all 38 Linux CTest cases pass.
  • Packages: the packaged Windows and Linux builds pass the startup tests, and dumping and replacement were checked in the packaged Windows build.
  • Android: the APKs have not been tested on a device for this release.

Downloads: the Windows x64 zip, the Linux x64 tar.gz, and two Android APKs: arm64-v8a/x86_64 (the usual one) and armeabi-v7a (32-bit ARM). Both APKs use version code 22 and the same signing certificate as 0.4.8, so they update in place.

You must supply your own Knuckles' Chaotix (Japan, USA) ROM. No ROM image or game assets are included.