Quantcast
Channel: Interactive Dreams
Viewing all articles
Browse latest Browse all 1857

[Developers talk] How CD-i compatibility of MAME CD-i emulation got worse when they figured out how to run the Quizzard CD-i titles on MAME CD-i

$
0
0

 


It seems like MAME CD-i compatibility is fluctuating up and down when it is being worked on: When the compatibility of a certain CD-i title is being improved, it impacts the compatibility of other titles downwards. There is currently a lack of documentation on any of the chips used for audio in any of the CD-i models. The CDIC, which was used on Mono-I boards, is partially emulated thanks to information provided by CD-i Fan, the author of CD-i Emu. The developer of MAME CD-i, CD-i member 'The MogMiner' is working on a new driver, based on the Mono II-board. TheMogMinder: "I was actually able to get proper low-level emulation of the SLAVE MCU working in MAME - sort of - but it unfortunately required some hacks to the 68k core, since it doesn't have actual /DTACK support at this time. And unfortunately, the way the SLAVE MCU is wired up, it yanks /DTACK if a read cycle is performed and data isn't quite ready yet. [About the new driver,] I don't remember whether it was the 490, 910, or whatever in the world the "Mono II" driver is, but you can probably ID it based on the screenshot that I apparently had laying around on Imgur. (see above) The major graphics bugs were due to me hastily re-working the MCD-212 device to decouple the LCD panel drawing from it."
He continues: "Unfortunately, the CDIC emulation (Mono-1 board as currently in MAME CD-i) was never that great, and lately it's gotten worse. A year or two back, in the process of getting the Quizard arcade games up and running, since they were hitting the CDIC in a way that displeased them and led to game hangs, I got them working, but in turn managed to break a huge swath of the rest of the CD-i library. Which is a pretty accurate summary of what I've gone through every time I've opted to look at the driver every couple of years. Tweak the CDIC HLE, fix a few games, break a few other games. Like a perpetual game of whack-a-mole. Unfortunately, without any actual documentation on LEMM (audio custom, apparently) plus the gate array which is used for CD management on the Mono I board, I'm not sure I can do much better without comprehensively decompiling the entire CD driver for that model. In theory it's not that much 68k code, but it's rather spider-y, and stepping through it using MAME's integrated debugger bores me to tears...


While the Quizard CD-i software runs on MAME, it has not been figured out how the language of Quizard CD-i is controlled, and most likely won't be, since that's outside the scope of MAME. Only the pure software is compatible with MAME.The Quizard games are now running with actual dumps from the i8751 MCUs used, rather than being (poorly) HLE'd. In theory, in src/mame/drivers/cdi.cpp, you can set the VERBOSE macro to LOG_QUIZARD_OTHER and run the games with -log specified at the command line, the comms to/from the MCU will be printed into error.log. And if you want to dive into the i8751 code itself, you can run with -debug and then "focus 1" in the debugger to set focus to the i8751"


"While re-writing the CDIC in MAME seems to have improved some things (Pac-Panic), other things are failing in new, exciting, and infuriating ways. Tetris decides to tell the SLAVE to mute itself immediately after the initial Philips logo, resulting in the title screen having no sound. Lemmings, same, resulting in the intro 'movie' having no sound."

[Thanks, The MogMiner, developer of MAME CD-i emulation]


Viewing all articles
Browse latest Browse all 1857

Trending Articles