etabeta's playground

MESS & MAME wip

Archive for February, 2013

Lock on!

without comments

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
ibm5170 slot
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”
c64 slots
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.
c64 idec64 cpm

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
apple2 slot
(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
iq151 slot
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
SK
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!
SK slot
So if I insert Sonic 2, I get…
SK+S2 title
SK+S2 slot
SK+S2 snap
If I insert Sonic 3, I get
SK+S3 title
SK+S3 snap
SK+S3 slot
And finally, by inserting Sonic 1, you have access to all levels of the Blue Sphere hidden game
SK+S1 snap
SK+S1 slot
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
SK+PS2 snap
SK+PS2 slot

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!

Written by etabeta

February 3rd, 2013 at 10:54 am

Posted in MESS