Well... I used Lunar Expand and expanded vanilla Super Mario World to 8MB. I tried all five 8MB versions from the program on two emulators: "snes9x 1.52-rr" and "BizHawk 1.8.2." All of the roms loaded perfectly except for "64 Mbit ExLoROM (8 MB) 2" which gave me a black screen on snes9x. But it loaded fine on BizHawk.
It doesn't work like that. If you simply expand the original game to 8MB with Lunar Expand, for instance SMW, it it actually not 8MB, since the space is filled with the Exlorom mapping. So after 4.5MB there are only 00 bytes. (SMW is 0.5MB, and Exlorom starts at 4MB). So this falls under 6MB. You need to transfer the data into the last MB (from 7MB to 8MB) and you'll see that snes9x 152 doesn't work. Thus you need to use those recoded emus by Fusoya to actually be able to run 8MB (data beyond 6MB as well).http://www.romhacking.net/utilities/903/http://www.romhacking.net/utilities/904/
I just patched the game with the DeJap version and tested on BizHawk and snes9x-rr: Both failed to load. Then I tested on Super Sleuth and it loaded, but there's no sound and the game runs extremely fast for some reason. I don't know if that's a problem with the emulator or I just patched the stuff incorrectly.
This particular hack was designed for real hardware and for Super Sleuth only as stated in the readme.
Whoa, 16MB!? How can I patch a game to this size? The Lunar Expand program only expands to 8MB at max. I wanna know how to do it.
With the hex editor of course. Select add bytes and add another 8MB to the already existing 8MB rom. But 16MB is actually more a theory, however 12MB is possible as said by byuu. However I don't know how this can be sone since all pointer caculations to write data end at 8MB. So basically the SNES address can not be calculated by address calculators if the PC address goes above 800000. So there must be some other way, like bank switching.
Note: if you have a 12MB rom, and the data beyond 8MB are 00 bytes (empty) then you can not regard this as 12MB.
12mb is possible both on a physical cartridge and a digital rom, and it would load fine on some emulators? but then there's 16mb which is only possible with extra mapping chips. Would a 16mb game work both on a physical SNES/SFC and on an emulator? I think things are becoming slightly confusing...
I highly doubt that any emulator will run anything above 8MB (note the upper 12MB hack is not Exlorom as far as I know, so it has a custom mapping which is recognized by Super Sleuth and real hardware).
In fact I can not recommend you to go beyond 8MB.
For instance the best combination is to go for Exlorom or Exhirom mapping and 8MB rom (more that you will ever need for a SNES game). If you fill all banks with data (except for the last part of the rom), the emus by Fusoya will run this normally. For the Bsnes you need to write a custom XML to define the mapping. Similar for real hardware.
The other option is 12MB, but not Exlorom, but rather what the upper hack is using, since this can obvioulsly work on hardware (tested). You are out of luck with emulators in this case, with the exception of Bsnes.
It can't be a full 16MB, because you need some room for the IO registers and RAM.
(and I thought even the proposed 8MB mappings left a bit of that space unusable to avoid overlapping RAM)
Exactly. The same with 8MB. The last part of the rom is reserved for RAM. So it is not wise to map any data on the end of the rom. I actually tested this in my 8MB test rom. The last 7 banks of 8000 were actually not responding (were reserved) to any new data.
Because EPROM chips were expensive as hell at the time. It's not like pressing a CD later on in the disc based era where it's not difference if the disc is filled to the top or not. Every space upgrade costs the publisher more money.
Good to know.