HI,
Just wanted to document this here in case it helps anyone in the future on a Google rampage, I had to work my Google-Fu to it's limits to come up with this solution.
When you want to emulate a computer system in MESS, the Multi Emulator Super System (which shares its codebase with MAME), the emulator will start up in full keyboard mode. This is suboptimal for keyboardless operation, such as in an arcade cabinet since then you need to go into a partial keyboard emulation mode (default via the "Scroll Lock" key) to be able to exit the emu (via a remappable key a-la MAME). There is no -partial command line option, although it seems to be a much requested feature.
There I was wanting to use MESS for Sinclair Spectrum Emulation (my first baby), ripping my hair out trying to find a way to exit the emulator via a joystick button. Having to press Scroll Lock every time before Joy1 Button8 to exit was not an option, since even though I have a
Motorola NYXboard attached at all times for emergencies I don't want to fiddle with it during normal operations.
As I said I was about to give up on my Googling when I came across
Wolfmess which enables -partial keyboard emulation as per default. Ecstatic with joy I installed it only to find out that it has a menu bar running on top that apparently can only be turned off via mouse.
That meant I had to get down and dirty. I had to bite the bullet and roll my own mess.
Compared to the time I used trying to finding a solution, this was a breeze. Below are step-by-step instructions in case anyone is interested.
Note, everything is based off v.1.51 of both MESS and Wolfmess although the method could probably be applied to future versions and using Windows 7 (64 bit although that's irrelevant) to compile.
Download the following from the
mamedev site.
- Latest source "mame0151s.zip"
- And the approprate building tools (In my case "mingw-mame-w32-20121207.exe" since I am building for 32 bit Windows XP Tiny.)
- Latest Wolfmess source "wolfmess151-src.zip" from the Wolfmess site
Unpack all to individual subdirectories (mingw, mess sources and wolfmess sources)
Find wolfmess151.diff, search for "partial" until you find the relevant code change (should be the first hit)
machine.set_ui_active(1); /* partial emulation to be enabled by default, map keys or switch to full emu mode if your emulation needs to get around ui keys */
You can see on the context where to insert the code into
ui.c in the main mess source .
Now on to the building:
- Edit makefile with a text editor in the mame/mess source and set "TARGET = mess"
- Open a command line window (cmd) and browse to the directory above all the above mentioned subdirectories.
- Go into the mingw directory and run setenv.bat to set the path to the compile binaries
- Now cd to the Mame/Mess source directory and run "make -j5"*
- Voila you should have a fresh Mess.exe with -partial keyboard emulation as default
* I use the -j5 option even though I have no idea what it does, haven't even bothered to look it up.. just something I saw on the
mrdo mame build page 