After trying to put a copy of Bomberman 2 onto my wire-jungle UNROM board, basing it on the great nesmapper.txt list most of us probably have, I came across a problem. The particular rom I tried didn't work at all, and made me start to think my hardware had a problem (since it was my first test) until I decided to try a different rom just in case (Contra, which worked fine).
Now that's not saying the nesmapper.txt list is wrong, but I came to find out that the numerous revisions of the game I have use various mappers. The one I tried, for example, was MMC1. So this is obviously a problem, since I have a ton of roms with numerous versions, and am likely to not know which one is actually the same as the one mentioned in nesmapper.txt.
So, a little bit of Perl/MySQL/HTML later, I generated a master list for all the roms from that particular collection. It gives all the useful iNES info, and allows me to sort based on any of those things, both ascending and descending.
Mind you, it's a huge list due to all the versions of each rom, so depending on your computer/browser, it might be a bit slow to parse. And I implemented compression to keep the page size from being nearly 2mb. lol. But if you think it might be of some use to you as well, feel free to
check it out.
That is pretty cool.
The aboard name should definitely be added on all "good" ROMs. Unforunatly, it is impossible to own every single released NES/FC game, so a user contribuable system should be done for this.
However, you should mind that some roms has a wrong mapper number because of the "Disk Dude" or any crap present in the iNES header overwriting the high 4 bits of the mapper number.
Also, you seem to include most of hacks for all roms, wich isn't very necesary, I think.
It also shows all [HM02] version of MMC1 games that became mapper 2 after ROM hacking. A few of them (like Dragon Quest 3 (J) and Final Fantasy 2 (J)) became quite popular as mapper 2 games, as they actually are MMC1 games.
Also, sometimes the battery bit is lacking (like in one of the three Just Breed roms), or the mirroring bit is set even if the mirroring is done by the mapper.
[/img]
Bregalad wrote:
The aboard name should definitely be added on all "good" ROMs. Unforunatly, it is impossible to own every single released NES/FC game, so a user contribuable system should be done for this.
Perhaps the
NES Cart Database can help (well, eventually... it's not equipped to handle Famicom games yet).
Bregalad wrote:
Also, sometimes the battery bit is lacking (like in one of the three Just Breed roms), or the mirroring bit is set even if the mirroring is done by the mapper.
1. I think the version of Just Breed you're talking about is a translation. (Did the person who submitted the ROM to Cowering use a bad IPS patcher...? Or was that person just a lamer?)
2. The version of the iNES standard accepted by most emulators doesn't have a bit to indicate mapper-controlled mirroring.
That cart database is a million times better than mine. Though it's missing Bomberman 2, which I think I need to find out more info on.
The irony here is that this is the game which caused me problems initially trying to run it on the NES, and prompted me to make my list, yet now that I was able to easily see which of my roms of that game use UNROM, I still can't get it to run on my hardware! Has anyone else experienced trouble out of this game?
Bomberman 2 is a MMC1 game, it uses WRAM. The UOROM hack was made for a device which has WRAM; your UOROM dev cart doesn't have WRAM.
I should have mentioned I was referring to the Japanese version, which according to nesmapper.txt, is supposed to be UNROM. boardtable.txt apparently only shows the American version, which is MMC1.
In any case, that'd make sense, if it's depending on WRAM to work. Though the next thing to work on with my board is an easier method than switching my ROM chip out every time to try different games, so WRAM/Bomberman might have to wait a little longer still.
At least I can run the original. lol
I assume that you grabbed the [HM02] version, wich, just like Final Fantasy II and Dragon Quest III, among others, has been hacked from MMC1 to mapper 2 (UNROM) for unknown reasons (I've heard of an early FC emulator not supporting MMC1).
All of these games use basically the UNROM like PRG bankswitching, making the hack possible.
However, the games in question uses SRAM, and sometimes changes the MMC1 controlled mirroring, creating problems in the UNROM version hack.
They run fine on most emulators, but you can forget to actually put them on a UNROM cart.
In summary : DO NOT USE ANY [HM02] ROMS !! Use the good MMC1 version.
The only game wich is actually UNROM in japan and MMC1 in america is Dragon Quest II, as far I know. As a proof, the japanese version use password, and has no WRAM nor battery.
"mapper 2" hacks also probably fail to consider that UNROM suffers from bus conflicts, so when the game tries to PRG swap, it's swapping to a garbage bank, causing the game to crash or lockup when it jumps to $8000-BFFF. This might be what is happening (on top of the lack of WRAM).
That's true too, there are no bus conflicts on copiers.
I'm still curious to see if I can get an UNROM version to run on the hardware sometime, just for the heck of it. WRAM would be the first thing to try, which I want to implement anyway sooner or later. But if it comes down to a bus conflict, that shouldn't be hard to test for/fix either. I figure inverting R/W and OR'ing it with /CE should give you the /OE you need for the eeprom to only output during reads. And if you're only using a 128kB board, you should have a free OR already on the 74LS32.
The best way to run it on real hardware it to turn it back to a normal MMC1 verison and put it on a MMC1 card.
I'd have trouble to imagine yourself adding a RAM chip, a battery, and a 74LS04 for inverting on a breadbord that would come across with the real UNROM board in the cartridge. Also there would be additionnal logic to control the input of the RAM such as /RW, /CE and /OE. The MMC1 has all of these functions in chip, and the boad already has slot for the additionnal hardware.
Bregalad wrote:
The best way to run it on real hardware it to turn it back to a normal MMC1 verison...
There *are* (presumed-)good dumps available for both the Jap and US versions, which both use MMC1. For the usual legal reasons, that's all I'll say
Out of curiosity, what exactly DO all the codes in the rom filenames mean? Stuff like o1, h2, b3, etc. I have a slight understanding of hMxx ones, which I believe is hacked to run on a different mapper. But that's about all I know of these codes.