Long time without posting, but work on MAME/MESS has proceeded pretty well (with some hyatus here and there…)
For instance, in MAME 0.173 you can now play with up to 9 friends in Saturn Bomberman, with the Sega Saturn driver (of course), thanks to the work made on the controller emulation (based on previous great work by Kale!)
The Saturn Multitap support is still not 100% accurate, but it is a starting point, at least.
Since the release, instead, I spent some time cleaning up the NeoGeo driver (whose cartslot emulation was not very accurate, at best, with all possible protection devices being mounted in the main system when running single-game drivers, and thus making a poor job at documenting how the hardware actually worked).
At the same time, I have also decided to go back revisiting old things that I had never managed to get working when converting console to use slot devices in MAME/MESS (see old entries of the blog, if you are not sure what I’m referring to).
One of the items which annoyed me most was NBA Jam for the MegaDrive / Genesis.
If you have ever tried to play it in MAME, indeed, the game plays without any apparent issue:
You boot, enter your initial
Then you play the first match
The problem is that, while as long as you keep playing the game records your progresses (wins & losses), when you quit and restart emulation, you are greeted with a disappointing “No Record” message
Given that this is one of the games I have wasted more time with as a teenager, both at arcades and at home on the MegaDrive, this was really an itch that I couldn’t scratch and that kept jumping to my mind whenever I had time to look into unsolved emulation issues.
The big problem with this was the nature of the issue: the cart relied on the serial EEPROM implementation available in the MAME core and I had zero past experience with this kind of chips. I downloaded (long ago) the datasheet for the specific device used in NBA Jam carts (a X24C02 EEPROM) but to no avail: the MAME implementation was close enough to sound reasonable and not close enough (at least to my eyes) to directly compare the code process with the process described in the datasheet. One of the worst possible scenario for tracking down a bug like this 😉
In the end, after several attempts, yesterday I have managed to write down some equivalent code good enough to get to the following screen
This means that I shall finally be able to improve my old record of 26 wins in a row and it also means that we are closer than ever to emulating in MAME the similar EEPROMs used by other MegaDrive games and by some Bandai games on Famicom.
My effort will go primarily towards investigating why the core implementation fails, so that any other driver will be able to benefit of the improvements… but this also means it might be a few releases before other games using these EEPROMs are playable. However, having a working implementation to compare the broken one with could probably attract the attention of other DEVs as well, and work team might give a boost to the development.
Some time ago, I have discussed about Nantettate! Baseball by Sunsoft (for the Nintendo Famicom) and about the sub-cart system used to update team data of the original game at later stage, to renew players’ experience without the need of a whole new game.
In Japan, however, it was far from being an isolated case. In particular, it seems that Bandai was a company who strongly believed in the concept of expandable games, with cheaper updates at later times. It happened with Famicom Karaoke Studio (new songs were added by switching the cart in the body of the Karaoke Studio connector)
(Karaoke Studio base cart and add-on cart pics from ochagumi’s blog)
it happened with the Datach Joint ROM System (featuring a barcode scanner in the base device)
(Datach base cart and add-on cart pics from nesworld.com)
and it also happened a few years later with the Sufami Turbo for the Super Famicom (a.k.a. SuFami)
(Sufami Turbo base cart from an auction)
In emulators, these expansions are never trivial to handle (not to mention that quite often users are not aware of the correct usage of the original hardware!), but luckily the progresses about slot devices in MESS made them quite easy to work with, both from the development and from the usage points of view. If Sufami Turbo was already handled fine under the SNES driver, and Karaoke Studio is still out of reach due to mic emulation requirements, in the past few days I dug out some old (and broken) code to emulate the Datach unit in MESS and decided to take another look to the barcode reader support.
Long story short, I managed to fix the barcode handling code, and in next release you will be able to effectively play most of Datach games in MESS! However, I guess that some explanations on the way it will work in the emulator could be useful.
EDIT (2014-02-13): As of latest MAME/MESS svn, Datach games have been moved from NES softlist to a separate Datach softlist (because the carts are different, as you can see from the pictures). Also, the base unit has been properly implemented as a passthrough cart with a separate cartslot for its minicarts. This means that to test the improvements below you now have to launch MESS with the following command
mess nes -cart datach -cart2 gamename
where gamename can be either a softlist shortname, or the full path to the iNES files for the games (notice that you can also load an headerless 256k dump of your Datach minicarts, so you don’t need to add an header if you dumped your own cart)
First of all you will need to launch a Datach game in NES. These typically are games which boots with this logo
If you have ever launched one of these games in previous MESS, you would have noticed that some games were not really playable due to the game sitting there waiting for a barcode to be scanned into the unit. The Dragon Ball game (Dragon Ball Z – Gekitou Tenkaichi Budou Kai) and the Yu Yu Hakusho game (Yu Yu Hakusho – Bakutou Ankoku Bujutsu Kai) are perfect examples for this
If you try to start a game and you have no barcode, you cannot pass through the following screens
where the game waits for a barcode to generate your character.
Now, when you get to those screens, you can just open up the UI and you will see a brand new menu item: Barcode Reader!
You select it, you choose the Datach reader, and you will get to the Barcode prompt
and here you can enter your favorite barcode! (you first type the code, then you select the “Enter Code” option)
EDIT (2014-02-14): the guy at retrostuff.org (the website where I had borrowed the original Goku barcode) has scanned some more original cards for the Datach Dragon Ball Z game. This helps to play the game as it was intended. You can find them at this page. Thanks a lot, mate.
By using “5018-4385″ and “9638-5074″ (two codes I found by googling EAN-8 barcodes) you get a fight between an alien and the cyborg 18!
The game also features a menu where you can test your barcodes to see which fighters get unlocked with each code, before entering the tournament!
By selecting “022248-300117″ (which comes from an original DBZ card for Goku), you will see the game scanning the code
and you will get a Level 2 Sayan fighter.
By using “062982-144233″ (mentioned in nocash documents) you will get a different and stronger Level 2 fighter (maybe Trunks?)
By using “9-771129-975005″ (a code I took from a comic book I had at home) you will get a weak Level 1 Piccolo
and so on…
Similarly, in Yu Yu Hakusho – Bakutou Ankoku Bujutsu Kai, you can now pass to the actual fights
You can now also play Ultraman Club – Supokon Fight!
and J League Super Top Players
and SD Gundam – Gundam Wars
even if I’m not sure how to pass this screen
Finally, Battle Rush – Build Up Robot Tournament does not enter in game (maybe it sits waiting for response from the unemulated EEPROM?)
The factory option works, but in this way there is not much to do other than creating robots over and over.
There was also a seventh Datach game, Crayon Shin-Chan Ora to Poi Poi, but this does not even use the barcode unit and it was probably only sold in Datach format (in addition to the standard FC cart format) to make happier the owner of the Datach unit.
I’m not fully satisfied by the initial commit to MESS, because Datach carts are still treated as base FC carts, without a separate slot, but this will be fixed later. In the meanwhile, 6 out of 7 Datach games are playable, at last!
Finally, for the moment I won’t look in supporting Barcode Battler units (both for NES and SNES), because those require to convert the NES/SNES controllers to be slot devices and thus require more time than I have at the moment. Also, I’d be actually more interested into understanding how Barcode Boy worked, since only a few emulators support or document it 😉
One of the main limitations of NES emulation in MESS has always been the lack of MMC-5 support. It was not the only problem (many games suffer of 1-line glitches, a few games are broken, and Skulls & Crossbones IRQ handling does not like at all out PPU code), but still MMC-5 was probably the most annoying one, because Castlevania III is one of the favorite games of a lot of people (including myself) and it was a pain to admit that we were not able to support it properly in MESS.
I have written many times in the past that the culprit was our emulation of the NES video chip, too limited to handle all MMC-5 features, and that a full PPU rewrite was needed in order to properly fix CV3 and the various Koei games which run on this boards. And I have promised to many friends that eventually I would have been able to tackle the challenge of such a rewrite.
Unfortunately, a long series of real life events is keeping me 95% busy with non-emulation stuff, so that the actual rewrite I’ve been working on since last June is still faaaaar from completion. In conclusion, proper MMC-5 support in MESS seemed doomed…
…if it wasn’t for the fact that I was terribly nauseated by repeating over and over that MESS was very cool (thanks to the MAME debugger, to the number of supported pirate mappers, to the support for Game Genie, Famicom BASIC and Nantettatte Baseball subcarts), but not good enough to support MMC-5, despite MMC-5 was one of the most famous official Nintendo mappers and it was already supported by most other emus…
Read the rest of this entry »
One thing which I have always wanted to add support for in MESS was tape loading from inside Family BASIC for the Japanese Famicom. I’m not sure if I was fascinated to see what could be done when using my fav 8bit console as an home computer, or if I wanted to support it because only a bunch of other emus do (NEStopia, NesterJ, any other?), fact his that I had made multiple attempts in the past 2 years to add cassettes to Famicom in MESS, with no luck.
The problem was not the cassette recorder connection in itself: it was well documented which bits correspond to read from tape and write to tape, respectively. The problem was the small number of testcases and the apparent lack of documentation about the cassette file formats!
Once Anna Wu managed to find for me a few .tp files to play with (many thanks as usual, Anna), I thought I was ready to go, but I realized soon that the problem was not so easy to solve: a .tp file contains a sort of waveform pattern, but I was unable to convert it to something that Family BASIC was capable to recognize…
The real breakthrough happened when I got in touch with Pokun at nesdev boards, who in turn pointed me to UglyJoe, brilliant and very friendly admin at famicom world forums
He not only had found out that .tp was just a raw wave file at 32kHz (very easy to convert to a .wav file to be fed to MESS, e.g. with Audacity), but he also spent a lot of time last year typing a dozen of Family BASIC programs in his FC and saving them to tape!!!
Hence, by converting Anna’s .tp files and studying UglyJoe’s .wav files, I finally succeeded in adding tape support to our beloved emulator.
EDIT: I recall that if you launch BASIC V3.0 and you get an error message displayed, or if you launch BASIC V2.0/V2.0A and you get a grey screen, it means that you haven’t connected the Famicom Keyboard! To test any of the games below, you need to launch famicom emulation in MESS with one of the BASIC carts mounted, then access the internal UI with TAB, go into Driver Configurations and change the Expansion port to “FC Keyboard”. Once you’ve done this, the BASIC cart will work as shown in the pictures
and some of the files typed in by UglyJoe (that you can find at famicomworld and maybe you can also say thanks for his work, while you’re there)
The new feature revealed also that our NES input handling, whose cleanup I had kept postponing for months, really needed to be revamped in order to allow working controls in these games. Indeed, our code had been written with NES controllers in mind (and it worked well for those), but Famicom controllers were different. Original FC had indeed hardwired controllers and any additional peripheral had to be connected to the expansion port which we were not emulating properly. This has been mostly fixed now and, when tape support will be added, you will be able to also control the main characters in the games
An interesting feature of UglyJoe’s tapes is that you have to load the BG data separately. Luckily, UJ gave all the necessary details and I post them here too, for reference. So you need to launch Famicom in MESS with the Family BASIC v2.0 (or v2.0A) cart, with the FC Keyboard enabled as controller, and with one of the bg data wav file as cassette. Then, follow next steps
1. After entering your name, the cart will ask you if you want to load GAME BASIC. Either press Yes (F1), or type “GAME BASIC” and press Enter.
2. At next menu, select “2. BG GRAPHIC” by pressing “2”
3. Then press FC “ESC” key (in emulated keyboard mode, it is mapped by default to your TAB key; in natural keyboard mode, it is mapped to your own ESC key) and select “FILE” (scroll with arrow keys and confirm with the SpaceBar)
4. Press “L” (for LOAD) and Enter (no need to specify a filename). Then, enter the Internal UI and press Play in the Tape Control menu: after some second the program will be recognized and loaded (you can always FastForward the emulation to reduce the loading times!)
5. When loading procedure completes, the graphics will be displayed. Here you can access again the menu as before, by pressing the FC “ESC” key and then press the FC “STOP” key (mapped by default to your Backspace key) to go back to the main BASIC menu
6. Select “1. BASIC” by pressing “1”, to finally access the BASIC prompt
7. Now, enter the Internal UI, and load the program wav file through the File Manager menu. Then go back to emulation and type LOAD. Start the new tape from the Tape Control submenu of the Internal UI and wait for its completion
8. Typing RUN, you will be finally able to play the game and help Mario to kill the floating crab
None of these programs is going to compete with main Famicom productions (2KB of memory is too small for that), of course, but Family BASIC was a piece of Famicom history and it was a pity not to document it properly… and who knows, maybe some Japanese user will dig out his old collection of tapes and we might find more of these before they get lost forever!
p.s. there were a few more programs supporting tapes on the Famicom, and a few on chinese famiclones. if someone still has such tapes, please contact us at MESS boards!
OK, I had left you with the announcement of MESS supporting the lock-on cartridge for Sonic & Knuckles, but in the past weeks I have worked hard to propagate the nice features of slot expansions to other systems in MESS and I have to say that the results are definitely nice… actually so nice that a single blog post is not enough for all the changes that have been done (and the snaps necessary to show them all!), and I preferred to split them across a series of entries!
If you are a regular follower at the MESS board at bannister.org, you probably have already heard about most of these (except the NES ones… those should be a nice surprise for you too ), but I think that it might be good for everyone to finally see in action all those svn logs entries about “slot devices”
- The Sega side of the progresses, namely MegaDrive and Saturn
- The Game Boy side of the progresses
- The SNES side of the progresses
- The NES side of the progresses
There is still so much to do for these systems (more SNES addons to emulate, more sound chips in NES carts to implement, more protected GB pirate games to support, etc.) that you can expect to see slot devices mentioned in messnew and svn log still for long time, but I’m confident nobody would deny that this is a great starting point for future progresses!
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)
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
You can see that the update cart fits the small blue slot in the main cart!
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
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).
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
Game Genie with Super Mario Bros. 3 and the code for the Hammer suit
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)
and some Tengen games work now, like Klax, Road Runner and Alien Syndrome
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)
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
Plus, I have added support for some more pirate pcbs, mostly used by multigame carts or FDS conversions
Before 0.148u2 release, SNES carts got converted to slot devices as well. Like with MegaDrive and Virtua Racing, the main effect on the end-users is that now games using add-on chips like DSP-1/2/3/4 (e.g. Super Mario Kart, Dungeon Master, etc.) or ST-010 (e.g. Exhaustion Heat 2), or SuperFX (e.g. Star Fox) can be loaded into snes & snespal directly, without the needs of additional clone systems (snesdsp, snessfx, etc.) like in 0.148! And we also support dumps with the DSP bios attached at the end of the file, like byuu’s higan, for ease of compatibility of the files between emulators.
The rewrite had however also many other effects. For instance, the Powerfest ’94 competition cart is playable in MESS now (DipSwitches included)
But we also added support for DSP-1 games with large ROM, like Super Bases Loaded II
Furthermore, some basic support for BS-X Satellaview was added to both BS-X – Sore wa Namae o Nusumareta Machi no Monogatari
and some other compatible games
Even if most games making non trivial usage of flash memory are not working yet (which means that 70% of the BS-X carts, including the popular BS Zelda, BS Excitebike, Radical Dreamers and Treasure Conflix, will only show a black screen ), a few other work fine
Luckily, even our sloppy BSX implementation is enough to support the character data in Same Game, by just dropping samegmcc or samegamecd in the -cart2 slot available when loading samegame…
Same Game + Chara Cassette, Bomberman flavor
Same Game + Chara Cassette, Momotarou flavor
Same Game + Chara Data (which adds Tengai Makyou characters)
A more interesting addition was probably the Korean 20-in-1 multigame cart showed here, which mostly work in current MESS (even if a couple of games freeze at start)
As in the MegaDrive case, the slot code allowed for emulation of more protected SNES pirate carts
Pokemon Gold Silver
X-Men VS Street Fighter
Street Fighter EX Alpha
Also, even if MESS has supported 8MB ExHiROM/ExLoROM games with no problems since 2007, support is now more transparent and they work exactly the same as HiROM/LoROM
snaps from Dragon Quest 3 English translation
snaps from Super Demo World
As you might have guessed at this stage, a byproduct of the usage of slots is that it is now very easy to add emulation of the copy protection and of the bankswitch mechanisms used in many pirate carts. However, I can’t stress enough that without slots it would have never been possible to support properly the add-on chips as we do now
Soon after finishing MegaDrive, I have converted Game Boy and Game Boy Color carts to use internally the slot devices, and as a byproduct I found out that some “Collection” games, like Genjin Collection, Momotarou Collection, Mortal Kombat I & II and Super Chinese Land 1.2.3 were emulated as plain MBC1 even if they were in fact using an alternate switching mechanism. By fixing that, all of them now work fine in MESS and don’t freeze/reset anymore when a game is selected!
Also, I was able to add support for some pirate games which were not emulated before, like Rockman 8 (which might still have issues, given that enemies do not appear for whole sections of the levels… but it might just be the way it is originally, I don’t really know…)
and the raw dumps of Sintax chinese games (huge thanks go to Taizou, who reverse engineered the non-trivial protection for these!).
Some of these are quite interesting
others not so much, but still worth preservation to better represent the HK market
MegaDrive support has been improved some more, so that in addition to all the protected pirate carts which were supported by HazeMD, it also supports the recently dumped Super Mario World 64
and a few RPGs that not many other emus allow to play (credits go to Eke too, for the kind support in sorting out a few bankswitch corner cases)
Legend of Wukong
And, quite important from an user-friendlyness point of view, you can now use the main genesis/megadriv/megadrij emulation to run Virtua Racing
instead of using some clone systems (gensvp and c.) which many users did not even know that existed. Now you just load the game and it plays fine (by internally adding the required co-processor)
Also the slot code allowed to fix some bugs in our previous code, fixing some games which had been broken or heavily glitched in MESS for years like World Series Baseball games
WSB before (left) and after (right) the fixes!
As per Kale’s request, I also slot-ified the Saturn carts, allowing for cleaner support of Backup RAM carts. Hence, you can now format your saturn ‘memory card’ and load/save stuff there, e.g. in Castlevania Symphony of the Night
Also, you can copy data between the internal backup memory and the external one, like in a real saturn
1. select the external memory
2. select the data to copy
3. it’s written to the internal memory!
Long time without any news here, I know… In the past two years I’ve spent a lot of time fiddling with the internals of the emulator (nothing cheesy to display), updating software lists for MESS and taking care of ProjectMESS. Busy times in real life did not help either.
Anyway, there is some news today and I like to share it with you all: MESS now emulates properly Sonic & Knuckles pass-through cart, and even if it’s neither a complete novelty (on GameCube/Wii Eke’s GenesisPlus GX already emulated it) nor a breaking news (fake dumps with S&K+Sonic games exist to allow playing the combined carts), it is a significant addition and allows me to explain a bit more in detail one of the most important additions to MAME/MESS core of the past years: the concept of slot expansion!
The idea is easy: allow users to expand the emulated hardware in the same way as they were able to with the original hardware!
You launch the emulator, press TAB to access the internal UI and, if the driver supports slots, you will see a “Slot Option” menu entry which is the door towards a brand new world of configuration possibilities.
Let’s see an example: ISA slots for PC XT & AT computers (this has not been chosen by chance: it was ISA which originally motivated Micko to add slots, and triggered Carl’s, Mahlemiut’s and Judge’s interest ). You fire up “ibm5170″, you switch to partial emulated keyboard, you press TAB and this is what you might get
an EGA video cart in ISA1, a disk controller with 2 drives in ISA2, a serial adapter in ISA3 (with attached two mice and a terminal, even if probably they would conflict in the emulated machine) and an IDE controller with space for two HardDisks in ISA4! and for each slot, you can choose between a dozen or so of different carts (CGA, VGA, Hercules or SVGA video adapters, SoundBlaster or Ad Lib sound cards, even things like the Roland MPU-401 or the Gravis UltraSound cards!)…
But ISA expansions were only the beginning… Curt Coder has spent a lot of time to add slots to CBM machines (but also Luxor ABC, Wang PC and many more, if you know how to use them), and now you can emulate a C64 with multiple floppy drives and IEC8 or IEEE4888 serial expansions, obtaining something like the following by launching “c64″
You can see that, in addition to the datasette, we have a VC-1541 and a VC-1581 floppy drives connected to the usual ports, a IEEE488 serial cart in the cart slot, with a C2040 floppy drive in its IEEE9 port and a second IEEE488 expansion connected to the first… In the end, you can get more hardware connected than the C64 can recognize and handle, exactly as with the real thing!
And in addition to testing weird hardware configurations, slots have also allowed to emulate a lot of C64 expansion carts which were simply not possible before, like the IDE64 or the CP/M cartridges.
Other very nice examples are given by the Apple ][ family of computers, whose later models in MESS supports a wide variety of expansions, thanks to R. Belmont’s work
(warning: the depicted configuration would probably not work neither on the real thing nor in emulation… it’s just to show how many different carts are already emulated, including IDE, SCSI and MIDI carts!)
or the IQ-151 where slots added by Sandro Ronco are of fundamental importance because the base system only supports tapes, but selecting the proper expansion cart
you also get floppy drives to test disk images.
And it’s in this context that the new MegaDrive addition fits nicely. Indeed, after a couple of days of efforts into slot-ifying cart loading in the MegaDrive/Genesis driver, I was able to easily add support for Sonic & Knuckles to MESS!
You can now launch the base Sonic & Knuckles cart to obtain
but if you access the internal File Manager, you will see that you now have a second cart slot available to insert a new cart “on the top” of the previous one… Like in the real thing!
So if I insert Sonic 2, I get…
If I insert Sonic 3, I get
And finally, by inserting Sonic 1, you have access to all levels of the Blue Sphere hidden game
So far, you could have obtained the same result with the hacked up images available on the net…
But now, for the first time on Windows, Unix and MacOSX, you can also insert any other game and play the unique level generated from the cart data! Here is what I got with Phantasy Star II
Concluding, I hope I was able to give you a glimpse of the opportunities offered by slot emulation in MESS and that you got a little bit curious, to the point of willing to try them out by yourselves.
At first, their usage is not the most immediate because the -lslot output can be huge, especially for systems which support dozen of expansion cards, and because sometimes additional expansions can be triggered by loading specific items from software lists. Still, I can ensure that it becomes quite easy and friendly if you use a frontend like QMC2, which promptly updates all available slots whenever you change anything and hence gives you the opportunity of testing any sane (and insane) configuration before launching the emu!