News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Ryoma

Pages: [1]
Hello, I'm sorry for my first post to be pedantic but this caught my eye.

When you expand a 4MB ROM to 6MB, just mirroring the upper 32KB of each bank isn't enough to be completely safe.

That will fill in 00:8000-1F:FFFF, but now 20:8000-3F:FFFF will mirror the first 2MB of the expansion. But in the original 4MB ROM, 20:8000-3F:FFFF would be the contents of the second 2MB of the original ROM.

To be completely safe, you must expand an ExHiROM game to 8MB, not 6MB, and then mirror the upper 32KB of all 4MB. This gives you a total of 2MB additional space in the lower 32KB of each bank. If your HiROM game was only 3MB, then you likely only have to do this for the first 3MB to fill out 00:8000-2F:FFFF. Same goes for 2MB and 1MB HiROMs.

As FuSoYa said, this will still leave the lower 32KB banks at 40:0000-7F:7FFF different than the original configuration, but SNES HiROM games almost never use this range. And even if you mirrored the ROM exactly, 7E:0000-7F:FFFF will be different because WRAM overlaps the address bus there, but the game won't try to access ROM there anyway originally, so that doesn't actually matter.

And also as FuSoYa said, you could go through the entire game's code and fix up any accesses to banks 00-7D. You'd need to modify an emulator to log these accesses for you and then play through the game, because I don't think it's reasonable to try and find them all yourself with a disassembly.

TL;DR: my advice to Messianic is to expand Earthbound to 8MB and mirror all 32KB upper banks. As a simple and fast test, just take the 4MB Earthbound ROM, change the mapping byte (only needed for some emulators), and then copy and paste the 4MB a second time.

Pages: [1]