etabeta's playground

MESS & MAME wip

More on slots, the NES side

without comments

Finally, the NES chapter, i.e. the real news getting prepared for MESS 0.148u4!

Converting NES carts to slot devices has been my goal since a long time. It’s been essentially the main reason I’ve decided to learn more about slots, given that many NES carts had some additional chips on them and that these were impossible to support appropriately in MESS without slots.
However, at the same time, converting NES carts meant having to create around 300 hundreds different types of slots, so to covert all PCBs/mappers used by NES carts. It is not very surprising, therefore, that it took me really a looooong time before being able to announce the actual completion of the slot-ification process…

However, the work has finally reached a point where it can be made public because, even if more cleanups are definitely needed, at least no regressions are known at this stage (but I’m pretty sure that something has slipped through our regression tests, with more than 3000 dumps available…)

The first consequences of the slot devices cannot really be shown, because they mostly deal with sounds 🙂
With the new code, indeed, MESS finally features (like many other emus)
– sound FX in the Japanese version of Gimmick, by emulating the additional YM2149 present inside the Sunsoft 5B chip
– OST in Lagrange Point, by emulating the YM2413 present inside the VRC-7 chip
– speech in Jaleco sports game, even if they currently use external samples, mostly recorded years ago by Pongbashi, given that the ADPCM chip used in these is currently undumpable (samples go in the samples/ folder, like you would do with MAME samples, and you can use the old TOSEC set from 2009)

Definitely more suited to be displayed with snaps is the support for the NES-EVENT PCB, which means that you can now play in MESS the Nintendo World Championship 1990 cart (DipSwitches included)
nwc90_0 nwc90_1
nwc90_2 nwc90_3
nwc90_4 nwc90_5
nwc90_6 nwc90_7
nwc90_8 nwc90_9
nwc90_a nwc90_b

Another interesting aspect is that, thanks to the great analysis done by naruko on the Sunsoft-6/Sunsoft-DCS pcbs, MESS is now capable of emulating Nantettatte!! Baseball lock-on mechanism! This Sunsoft game is pretty interesting, given that it experimented a very original way to solve the problem of sports games with stats becoming outdated a few months after the game release…
Basically, one had to buy the original game first, at full price, and then after a few months the publisher offered cost-reduced minicarts containing new teams and new data to be plugged into the original game!

Nantettatte!! Baseball base cart and add-on cart pics from zation0323’s blog
ntbreal_a

You can see that the update cart fits the small blue slot in the main cart!
ntbreal_b

In MESS you will now be able to emulate this behavior like with Sonic & Knuckles: when you load Nantettatte!! Baseball, MESS offers you a -cart2 slot where you can load the add-on minicart (only two were sold by Sunsoft, ’91 Hen and OB Hen). By loading one of the minicarts, the first difference you see is in the available teams

ntbreal_0 ntbreal_1
base game (up left), 91 hen (up right) and OB hen (down left). also, I have fixed some gfx issues present in current MESS (down right).
ntbreal_2 ntbreal_4

but I guess that also team members and stats have been updated. Maybe, if this mechanism had been successful, Electronic Arts and other companies would have followed a different strategy in the past 20 years, but I guess Nantettatte!! Baseball was not a blockbuster 😉

Along the same line of piggyback carts, we now support the real NES Game Genie from Galoob (not very useful, given that most of these same codes are also in Puggsy’s cheats, but if it was possible on the real system why not in MESS as well?). Once again, when you load the Game Genie in the main cartslot, a -cart2 device becomes available to load any another game you want

Game Genie with Super Mario Bros. and the codes to make Mario immortal and to have Bowser flames in all levels
gg01
gg02 gg03

Game Genie with Super Mario Bros. 3 and the code for the Hammer suit
gg04
gg05 gg06

While converting the old code to the new slots, I have also improved some pcbs and/or fixed some bugs, which I guess will be appreciated by everyone. For instance, Family Circuit ’91 is no more glitchy as in 0.148u2

Ingame before the rewrite (left) and after (right)
famcir91_0 famcir91_1
and some Tengen games work now, like Klax, Road Runner and Alien Syndrome
klax_0 klax_1
rrunn_0 rrunn_1
asyn_0 asyn_1

Some progresses have also been made on other games, which however still do not work.
Skull and Crossbones now draws most of its graphics (but dies when the gameplay starts, possibly due to a delay in IRQ firing which is not easy to implement in current PPU code and which will probably have to wait until the PPU rewrite)
sxb_0 sxb_1

And Racermate Challenge II after some flickers (the game saves on battery the videoram content, but we currently do not emulate this, so the game has to initialize it every time, which should be the reason of the flickering…) finally shows the current game screen, but it cannot work because the bycicle controller is not emulated at all
racmate2_0 racmate2_1

Plus, I have added support for some more pirate pcbs, mostly used by multigame carts or FDS conversions
mc_0 mc_1
mc_2 mc_3
mihun_0 mihun_1
aisenshi_0 aisenshi_1
histfds_0 histfds_1
doki_0 doki_1
fuun_0 fuun_1
monty_0 monty_1
smb2m_0 smb2m_1

Written by etabeta

April 21st, 2013 at 1:43 pm

Posted in MESS

Leave a Reply

You must be logged in to post a comment.