Skip to content

Comments

ages-jp and seasons-jp builds#34

Open
artemus21 wants to merge 2 commits intoStewmath:masterfrom
artemus21:jpeu
Open

ages-jp and seasons-jp builds#34
artemus21 wants to merge 2 commits intoStewmath:masterfrom
artemus21:jpeu

Conversation

@artemus21
Copy link
Contributor

This adds 100% match ages-jp and seasons-jp builds.

What's in this?

  • Makefile changes for JP + EU builds
  • verify-checksum.sh change to support JP/EU
  • md5 checksums for JP/EU. US checksums moved to _us files.
  • changes to some python scripts to support JP (dumpGfxData, dumpPalettes, dumpRoomLayouts, dumpTilesets)
  • _jp assets, including gfx/common_jp, gfx_compressible/{ages|seasons|common}_jp, rooms/{ages|seasons}_jp, tileset_layouts/{ages|seasons}_jp, and precompressed equivalents
  • precompressed text in the form of textDataJP.s files
  • lots of ages-jp-specific junk data
  • many changes throughout the codebase in the form of ifdefs.

It's nowhere near as scary as it looks - 1107 files changed, but 850 are .cmp, 72 are .png, 52 are .properties and 43 are .bin :)

Things to note

Makefile changes and general philosophy

I opted for higher Makefile complexity to decrease the complexity of asset organization. JP specific assets are stored in _jp folders, and are copied after the non-JP assets, overriding them. In other words, US assets are the default, and only those that need to be overwritten are copied over.

If you don't like this, let me know and I can change it!

Code changes

I've only listed a subset of the JP -> US changes here.

  • Expected diffs, like text related things and cutscenes
  • vineSprout has a 3 changed to a 2
  • tokayShopItem has some different but still unknown data
  • dragonOnox does not seem to have linked game related stuff
  • gohma has state diffs
  • swordShieldMazeGrabbableIce has a change I don't understand yet
  • some seasons script changes

emptyfill macro

I added a macro to emptyfill both ages_jp and seasons_jp with data matching the bank number, so we no longer need emptyfill_0 md5s and/or the wla-dx modded build.

Rooms and tilesets

There are very few changes in these. But, for some reason they decided to change the dictionaries between JP and US. So, there are not many diffs in the .bin files, but there are many many diffs in the .cmp files.

:3

gfx

I converted all the gfx I could to png and set properties to match with the existing US ones. Let me know if I made any mistakes though!

I tested converting them all back to .bin and they all appeared to match.

spr_seasonfairy_ambi.bin - the one exception

This has to stay as a .bin - it seems the .cmp references memory outside of where it should, and somewhat ends up corrupted. The .cmp is definitely fine, as it gets put back into the ROM and continues to reference out of bounds memory, but the .bin may not be fine, and when I generate a .png from it it is definitely not fine.

I tried existing libraries and my own golang decompressor and got the same result.

Now that I think about it, if this .bin is actually corrupted, we may want to replace it with a non-corrupted version, even if it doesn't match the .cmp.

map_secret_entry_middle/flg_secret_entry_middle vs map_name_entry_middle/flg_name_entry_middle

{map|flg}_secret_entry_middle and {map|flg}_name_entry_middle are the same in JP. I don't know if we should rename or something.

Other data diffs

There's lots of other data diffs (OAM data, data_4556, palette data, etc). These are really hard to read and annoying. I don't really know how to make it nicer. If you have suggestions, let me know!

For later

Unreferenced data

There's more garbage data in JP ages - we should try to identify what it is.

Decompressing JP text

JP text only exists in compressed form right now. I haven't attempted to decompress it, and I'm unsure our current compressors/decompressors work perfectly for it. Something to follow up on, possibly when I dump the text from EU also and have the full picture.

@artemus21 artemus21 marked this pull request as ready for review February 17, 2026 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant