etabeta's playground

MESS & MAME wip

Archive for October, 2009

NES on fire! (part 1)

without comments

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)
wip01wip02

Crayon Shin-Chan and Sangokushi 4, both by Future Media (mapper 117)
wip03wip04

Super Fighter III (mapper 197)
wip11wip12

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
wip05wip06

or Family Kid + Aladdin 4 (mapper 134)
wip07wip08

or Thunder Warrior by TXC (mapper 189)
wip09wip10

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,
wip13wip14

their Chaos World and Captain Tsubasa translations (both on mapper 195),
wip17wip18

their Dragon Ball Z translations (both on mapper 199)
wip19wip20
wip21wip22

plus a few (possibly original) other games on Mapper 192
wip15wip16

and a few bootlegs on Mapper 242 and 245
wip25wip26
wip23wip24

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
wip27wip28
wip29wip30
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)
wip31wip32

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)
wip33

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)
wip36wip37
wip38wip39
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
wip34wip35

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.

Written by etabeta

October 7th, 2009 at 4:55 pm

Posted in MESS

NES on fire! (part 2)

without comments

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):
wip40wip42
wip41wip43
wip61wip60

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).
wip44wip45

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).
wip46wip47

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):
wip48wip49
wip50wip51

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
wip58wip59
wip56wip57
wip54wip55
wip52wip53
wip82wip83

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 🙂
wip64wip65
wip62wip63

Also, talking about Taito, small glitches in Mapper 82 have been rectified
wip66wip67
wip68wip69

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
wip70wip71
wip72wip73

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
wip74wip75

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)
wip76wip77

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)
wip78wip79
wip80wip81

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
wip84

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
wip93wip94
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)
wip85wip86

HES 6-in-1 (mapper 113, without and with the hack in the snaps)
wip91wip92

Cosmo Carrier and Dragon Quest VIII (which would not work at all by using their standard mappers)
wip87wip88
wip89wip90

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…

Written by etabeta

October 7th, 2009 at 4:54 pm

Posted in MESS

Older news

without comments

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)
150_01150_02
150_03

Happy Pairs (mapper 150)
150_04150_05

Strategist (mapper 150)
150_06150_07
150_08

Poker III 5-in-1 (mapper 243)
243_01243_02

=================================

* 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)
074_01074_02

Mapper 12 (brand new addition to MESS)
012_01012_02
012_03012_04

=================================

* Additional clean ups and bugfixes [Oct 2nd]

Mapper 114 (used by The Lion King)
114_01114_02
114_03

Two Nintendo multigame carts based on MMC3 (on Mapper 37 and 47, respectively)
037047
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)
045049
These were running on mapper 45 and 49, respectively

Finally, a Super Mario 7-in-1 cart has been added (on mapper 52)
052
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… 🙂

Written by etabeta

October 6th, 2009 at 3:54 pm

Posted in MESS