MAME 0.163 was released a couple of days ago, but I’ve been rather swamped down and haven’t had a chance to write about it (nor finish the writeup for last year, which I haven’t had time to touch in about 3 months)
0.163 is actually a rather light release, it cleans up a couple of reported issues from 0.162 including some long-existing MESS-side bugs that ended up being reported with the increased number of users after the projects were merged. Along the same lines the uimodekey commandline option was also ported over from SDLMAME which is very useful if you’re running an emulated computer and are using a keyboard that lacks a SCRLOCK key.
From the Arcade emulation point of view the most significant thing in 0.163 is probably the discrete sound emulation for Kid Niki and Horizon. The downside to this is that it has slaughtered the performance of the driver, even for some games that don’t make use of the analog drums at all to my knowledge (The Battle Road). You can expect around 250% speed at most on a 4ghz i7 with the new code (down from over 4000% without it) I’m not sure that will improve because emulation of discrete components is always going to be expensive. Speaking of The Battle Road I fixed the colours in that with the help of caius providing a PCB reference.
The Analog sound in Kid Niki and Horizon was done by Couriersud and Andrew Gardner, I’ve uploaded a video of it here (and yes the pops and crackles happen in the emulation, they’re not artefacts of the video)
The Z80 TV Game System emulation is an interesting one too, it’s basically a modern (but very simple) ‘homebrew’ console based around the Z80 CPU. As it actually exists it is eligible for emulation and so ended up being emulated in the MESS side of the project, the games however are reminiscent of the late 70s B&W games. You can see details about the hardware here. Definitely one of the submissions I found most interesting this round, and clearly demonstrates the diversity of the project.
Air Rescue and F1 Exhaust Note are now set up properly as twin display games without hacks, as per the previous news post, however in addition to that SailorSat also contributed some code to simulate the link features of a number of other Sega PCBs across multiple instances of MAME; you need to know what you’re doing to use them however, it’s not exactly plug-and-play like the actual twin display ones are.
The C64 control issue I talked about in the Donkey Kong article has also been fixed, although from various information that has been supplied it sounds like a real fix might be more complex as apparently bits on one of the IO chips can apparently still function as inputs even when configured as output if the external hardware is set up in a certain way, the C64 is set up in a way that causes this to happen, the Amiga is not, so until it’s done properly there could be conflicts.
I was able to run 2 disk images of the Ocean (Europe) version of Donkey Kong successfully.
mame64 c64p -flop1 “Donkey Kong (1986)(Ocean Software)[cr New Stars].d64”
mame64 c64p -flop1 “Donkey Kong 5H NTSC FIX (Remember-Crypt-WDR).d64”
The tape image, and non-cracked version do not appear to function, I’m guessing they fail some kind of copy protection because our emulation isn’t accurate enough. (or maybe you need to disable the disk drive to run the tape one, I’ve heard of other cases where that’s true, haven’t checked)
The issue I was having with the PC version of Raiden which meant I didn’t include it in the ‘What to Do in 0.162’ articles was also apparently fixed, haven’t had time to check it out yet tho.
R.Belmont documents an important fix made to the Apple II emulation regarding how we were generating raw signals based on some disk image formats, see here. It was causing at least one non-copy protected image to fail simply due to the timing being slightly off, so very good to see it improved; accurately simulating a floppy drive is much more difficult than you’d imagine.
Sometimes small discoveries are important too, the X1-010 audio fix for downtown actually implements a previously undocumented register to control the sample rate, could affect other things too.
There is also a preview of what could become the new build system, allowing ‘tiny’ builds to be made easily just by specifying the drivers you want to be included and having the build system work out the dependencies. This could eventually replace the current Arcade/MESS sub-targets as it allows much more focused builds for development.
All in all 0.163 is not a major update (I suspect major updates will be rare, there’s simply not much left that will grab people’s attention – Andreas was looking at Namco System 10 but the encryption appears to have got the better of him at the last hurdle, and my time is also more limited than ever due to Real Life too) but steady progress is good progress.