Archive for October, 2009
NES on fire! (part 1)
Ok. The code update I worked on during last weekend is finally ready for submission. Let me take some time to fully explain why these are definitely good times for NES emulation in MESS and why MESS is no more light years away from NEStopia (even if we still have quite a long distance to cover up)!
As a first step, once I had fully fixed MMC3 emulation (as the screens from Nintendo 2-in-1 & 3-in-1 multigame carts shown in my previous post witnessed), I worked on adding MMC3 clone mappers. This was quite an easy task, thanks to the wonderful original design of the driver (Brad Oliver had done an astounding job with it, and thanks to the recent updates by Heretical One is now very easy to translate most real behaviors in MESS code) and thanks to the available documents
Samurai Spirits by Rex Soft (mapper 14)
Crayon Shin-Chan and Sangokushi 4, both by Future Media (mapper 117)
Super Fighter III (mapper 197)
They still present various glitches in-game, but I’m not sure what the problem is exactly. In the meanwhile, they are playable.
On the other hand, no particular glitch affects either K’s Panda Prince (mapper 121), a Donkey Kong Country rip-off
or Family Kid + Aladdin 4 (mapper 134)
or Thunder Warrior by TXC (mapper 189)
Then, it was time for some Waixing showtime. Waixing is a very prolific Asian producer, responsible for a lot of unlicensed Chinese translations of Japanese games and many “original” titles as well. Now MESS supports:
their Sugoro Quest (mapper 191) and Super Robot Taisen (mapper 194) translations,
their Chaos World and Captain Tsubasa translations (both on mapper 195),
their Dragon Ball Z translations (both on mapper 199)
plus a few (possibly original) other games on Mapper 192
and a few bootlegs on Mapper 242 and 245
I’m pretty sure that there exist at least other 2 versions of the first game (Waixing Zhan Shi), running on different mappers and marketed by other companies… I think we now run them all (but I don’t know Chinese, so I cannot appreciate possible differences among the versions)
Talking about Waixing, I also fixed mapper 115 (labeled as 248, previously) which was not booting some of the games like Shisen Mahjong 2 and Thunderbolt 2
Now, you can see they both work. And that’s all for Waixing games.
Back to other pirate carts, I added a couple of Super Mario bootlegs (running on mappers 50 and 106, respectively)
and I fixed both the SMB bootleg running on mapper 40 (which maybe had been working in very old MESS versions, but it’s been broken at least since 0.123)
and the game selection in Mario 7-in-1 (now you can enjoy most of Mario pirate games in a single cart, together with SMB2 & 3 and Mario’s Missing 🙂 )
While at it, I added/fixed a bunch of multigame cart mappers (namely 205, 217 and 231)
All the games on the each cart should be working, to my knowledge.
Finally, to conclude the pirate mappers review, I have added IRQ triggering to Mapper 91, and Mortal Kombat 2 is now playable (despite a couple of graphical glitches, here and there) as well as some other terrible pirate beat’em up
Actually, I also added mappers 249 & 252, but they only partially work, and mappers 187, 198, 208 & 215, which are completely not working at the moment. Hence, no snaps for the latter ones.
NES on fire! (part 2)
However, in case you wonder, my efforts have not been only directed towards adding new mappers, but also towards fixing very old and annoying issues. Hence, there are a few chances that some of your favorite games might have been fixed in addition to the ones I show below.
Let’s start from Bandai. Mapper 16 was using incorrect mirroring. As a result of the fix, we have a lot of improvements (before vs. after):
While at it, I added support for Mapper 159 (same as 16, but with different EEPROM communications… not a big deal in MESS, since at the moment we don’t emulate the EEPROM at all… it’s on the todo list however).
I added also support for Datach games (mapper 157, same hardware), but they cannot work without Barcode reader emulation (which is not implemented at all). Finally, I added mapper 153 (similar to mapper 16, but no EEPROM) and it’s working quite well (with the exception of Famicom Jump II, which is not properly mapper 153).
Passing to Jaleco, Mapper 18 was having huge IRQ issues, e.g. in Pizza Pop, and mirroring issues as well. Now you can compare these games before and after, and see that everything works much better (first snap series from Pizza Pop, second one from Plasma Ball):
Also, this fixes the crashes reported with many of these games.
Then there is Namco. Mapper 19 was having some IRQ problem and needed mirroring to be Horizontal at start (actually, many emu use mapper 210 for some of these games, but I can see no big issues in the current code so I stick to mapper 19 until proven wrong 😉 ). Comparisons should speak by themselves
Another announcement I’m proud of is that Mapper 48 (used by some Taito games) have been finally added to MESS. This means that we can finally play Bubble Bobble 2, Don Doko Don 2 and a few other nice games without changing emulator 🙂
Also, talking about Taito, small glitches in Mapper 82 have been rectified
Mmmm…. Jaleco, Bandai, Namco, Taito… am I forgetting any big Japanese producer whose game are now more enjoyable in MESS? oh yeah! Irem!!!
Irem Mapper 65 got some attention too! Fixing IRQ issues (IRQ was triggered at the wrong time), we are now able to see play Spartan X 2
And then, I noticed that Mapper 67 (by Sunsoft) was suffering of IRQ issues as well. This was a bit harder to fix properly (and there is still a 1 line glitch which cannot be fixed without rewriting the whole video emulation) but the improvement in Fantasy Zone 2 should be clear
oh, and talking about Sunsoft games, Gimmick! regression has been fixed (the game required to load PRG in 0x6000-0x7fff, and we were not doing that anymore for some reason)
Another mapper was using the wrong mirroring: Mapper 118. Thanks to Disch’s docs, I was able to code the correct mirroring and the fixes pay back! (screens from RPG Game of Life and Pro Hockey Sport)
Also, Firewave’s regression tool has been useful to catch at least two crashes which would have never been noticed (by me): a 2-in-1 pirate game (which does not crash anymore, but does not work either) and Wally Bear which now works with no problems
Not all the news are good, unfortunately. Mapper 5 requires a few tricks that it’s not clear how to implement in MESS; Mapper 185 is not properly emulated and this results in Mighty Bombjack and Seicross being not working; Mapper 64 and 158 (used mostly by Tengen games) are basically impossible to emulate properly at the moment. About the latter, some Tengen games have always been playable with no issues (e.g. Shinobi & Rolling Thunder) and I have improved Klax to the point that now it can be played to some extent
but there are still MANY glitches, as you can see. And games like Skulls and Crossbones simply show nothing. Something to look at, in the future.
I also want to take the chance to complain about the whole iNES format (or better, about the mis-use it has been subject to for some time): there are at least 6 cases of multiple incompatible boards using the same mapper number!!! This makes impossible to properly emulate both variants of Mappers 32, 34, 78, 113, 153 and 242 without checking the checksum of the game you are loading!! However, after adding a small hack (clearly documented in the source) we can now emulate correctly the following games
Major League (mapper 32, without and with the hack in the snaps)
HES 6-in-1 (mapper 113, without and with the hack in the snaps)
Cosmo Carrier and Dragon Quest VIII (which would not work at all by using their standard mappers)
Mission Impossible II and Famicom Jump 2 use this small hack as well, but they still do not work in MESS for other reasons. Notice that, UNIF dumps of these 6 games would not suffer of these conflicts.
That’s why I dream about the day all iNES files will be replaced by UNIF ones (even if MESS still does not fully support .unf images currently… but I’m working on it, even if it will take some time)
Finally, I have added preliminary support to the remaining FFE mapper (used by an old copier… the dumps using it are labeled as hFFE by GoodNES). I have basically no interest in emulating these 3 mappers, but the source is there if anyone wants to work on them.
This has been a lot of work, as you may guess, but at least now that it’s done we won’t need to go through all the mappers again 😉
See you…
Older news
Last week, I kept working on NES emulation for MESS. I made some progress (mainly on some pirate mapper) and I posted on MESS boards the results…
To avoid the screens to get lost in the number of replies, I think I’ll post here them as well:
* Fixes to Sachen mappers which were suffering of corrupted graphics [Oct 1st]
Mahjong Academy (mapper 150)
Happy Pairs (mapper 150)
Strategist (mapper 150)
Poker III 5-in-1 (mapper 243)
=================================
* Clean up of MMC1 & MMC3 (fixing scrolling glitches in Final Fantasy 3 and adding/fixing some MMC3 clones) [Oct 2nd]
Mapper 74 (no chinese text was displayed previously)
Mapper 12 (brand new addition to MESS)
=================================
* Additional clean ups and bugfixes [Oct 2nd]
Mapper 114 (used by The Lion King)
Two Nintendo multigame carts based on MMC3 (on Mapper 37 and 47, respectively)
The 2-in-1 cart was already in MESS, but the selection menu graphics had been corrupted between MESS 0.130 and today. Now that this has been fixed, I know of no regressions compared to the older MESS versions! yay!!
Other multigame carts got their graphics/banking fixed (so that now they are completely playable)
These were running on mapper 45 and 49, respectively
Finally, a Super Mario 7-in-1 cart has been added (on mapper 52)
but it turned out to have some banking problems which make it unplayable…
=================================
All the above changes have been available in MESS svn since last friday… but I’ve worked more on the driver during the weekend and soon I’ll post some nice screen to show what I have added & fixed. Stay tuned… 🙂