When the MCD-212 'VDSC' is in two-region mode - which allows more explicit control over windowing/mixing effects - it shouldn't process the region control registers if the first region control register for each plane (indices 0 and 4, respectively) have an operation code of 0.
By continuing to process further region control registers, it can lead to the weights for a given plane being changed partway through the line, when the plane weights should be held where they were at the start of the line. This could inadvertently cause a fully-visible scanline to abruptly become invisible, but in the case of The Apprentice, it led to the planes being turned back on, which was causing 16 lines of flickering garbage at the bottom of the screen.
With that out of the way, The Apprentice looks much better.
I'm still in the process of blowing the dust out of the MCD-212 device at the moment, so I haven't submitted a pull request yet, but it will be interesting to see if this has a positive effect on any other games.
Edit: Also, I'm aware the game should have audio prior to going in-game. I intend to look into it once I've finished cleaning up the MCD-212/VDSC.
Incidentally, the VDSC is used in nearly all late-model CD-i players. However, earlier models based on the "Mini-MMC" board (which include the 605, and 910 players) used 2x VSC/VDC. The latter chips are what Magic Card are based off of. The former (VDSC) more or less rolls the functionality of the latter (VSC/VDC) chips into one package, hence the name.
> Edit: Also, I'm aware the game should have audio prior to going in-game. I intend to look into it once I've finished cleaning up the MCD-212/VDSC.
this is where you'll need to be able to properly convert the CDi-Ready disc. The image in MAME is a bad, hacked dump, it will behave the same on hardware as it does in MAME in terms of music as all the tracks have been shifted due to MAME only loading the image if Track 1 is presented as a regular data track.
CDi-Ready has 100% audio tracks, the game data is in pregap (data before the first index) of the first track, which is recognized as an audio track.
Proper dumps can be found, but last time I checked CHDMAN could not convert them, as it made a mess of the pregap (didn't even match when converted back) I'm not sure if this has changed.
CATALOG 0000000000000 FILE "Apprentice, The (Europe) (Track 01).bin" BINARY TRACK 01 AUDIO INDEX 00 00:00:00 INDEX 01 15:22:00 FILE "Apprentice, The (Europe) (Track 02).bin" BINARY TRACK 02 AUDIO INDEX 00 00:00:00 INDEX 01 00:02:00
This is the original cuesheet, note INDEX 01 15:22:00 on the first track, the game data is stored before that.
Some music CDs use the same technique to put a hidden song before the first track too (if you 'rewind' a CD-i ready CD in a CD player to 'negative' seconds to play the pregap as you'd do with such an audio CD you'll get the data noise)
Last edited by R. Belmont; 01/06/2209:19 PM. Reason: Trimmed cue sheet so only the important part is there
yeah, just be careful not to outright treat the pregap as data, because as I mentioned some audio CDs rely on the same technique, so you'd break those. I'm not actually sure what the *correct* solution is, I think it's one of those cases that comes down to the TOC data being an approximation, and a real drive not giving a damn if something is 'audio' or 'data'
Tab Products E-22: Line drawing characters now work properly:
Unfortunately it still needs a hack to activate the RS-232 port. I haven't yet been able to find the issue because the code is very convoluted and uses jump tables all over the place. I did find the function that toggles the necessary bit and the jump table entry for it, but not where it's actually called.
On another note, this system is still completely invisible to the Internet - I only found reference to some earlier terminals from Tab, but not this one. Obviously it doesn't help that we don't even know if the system name is correct.
EDIT: Found some references on Google Books now, so the system name should be correct.
TOC (Table of Contents) handling, CD-i Ready handling, and other things have been dramatically improved in a pull request that I just submitted.
Among other things, The Apprentice now plays CDDA as expected during all portions of the game. I haven't tested Dimo's Quest - it will need re-converting from the current redump.org image - but it should be equally improved once an improved CHD comes online.
Additionally, I've put a considerable amount of effort into optimizing the video chip emulation, since that seems to be the perpetual hot spot. I was hoping to post a side-by-side video showing off how much faster the CD-i driver is after the latest round of optimizations, but I can't, because the inputs desync due to some of the other MCD-212 related changes. So, the general figure is that it should be about 1.5-3x faster than it was before.
For some perspective, a 120-second run of the intro of The Apprentice would run at around 600% unthrottled on my machine with 0.239, and it now hits around 1125% unthrottled on my machine with my current pull request.