Hi,
If there are chinese clones of PC-Engine they might be available here. I'll see. Anyways, do any games use these timing nuances? Can you name a few ones? Last time I checked, I thought Magic Engine could run all the games.
No real point getting a cheap clone PC-Engine (that may not even have the same timing anyway) when you'll need to get an expensive flash card to get things on it... you're better off getting a real TurboDuo and writing CDs for it.
Most of the glitches are lines being off by one, usually in an unstable way, and sometimes causing the screen to shake. The ones that go bad vary depending on the emulator and where it decides to trigger RCR IRQs relative to the scanline, and where it latches BXR/BYR, probably some other things. So doing something to fix one may break another. Changing the number of cycles per scanline may influence things too....
Bear in mind that emulators like Ootake use many per-game hacks to get around this. Magic Engine may do the same. The emulator used on Virtual Console appears to as well.
These are the HuCard games that my emulator has glitches in:
Final Soldier: title screen and start screen shake
Pachiokun: shaky intro screen with glitchy middle line
Devil Crash: line below status at top is incorrect
F1 Pilot: screen shakes a bit - note that this game is not even using RCR IRQs but is instead cycle counting for lines
Wonder Momo: top of title is repeated, screen is glitched during curtain fall
There are probably some others I'm forgetting..
My tester has only tested about half of all CD games so I don't know for sure what the story is there, plus I've probably forgotten some anyway, but I'm all but certain that VDC timing issues are causing Popful Mail to completely break during cutscenes, and this is something that plagues all emulators. Ootake uses very elaborate hacks to get around it; if you overclock to something like x4 all the time you can probably escape it.
Another thing to look out for are a few games that rely on DMA timing somewhat, which we also don't really have tests for. Riot Zone for instance appears to write to VRAM that DMA is working on simultaneously.
As far as CD is concerned, I have to warn you that none of the emulators really handle it within the same tolerances as the real machine. I tried writing my own low level CD-ROM code (not using the syscard) and while it worked on all of the emulators it did not work on the real machine and I simply was not able to fix this. At least one game, Steam Hearts, which uses custom CD routines, may be broken because of this (no emulator emulates this correctly either, Magic Engine has a hack for it and so does Temper for that matter, although not a per-game hack per se)
And btw, what things is Charles MacDonald's docs missing? (so I'll try figure them out from some emu sources).
stay safe,
AamirM
CPU timing, PSG, peripherals, most things about CD/ADPCM. Charles did write a great cycle level CPU timing doc but I don't think he posted it publicly. If you come on IRC (efnet) I can invite you to a channel where you can talk to the man himself about it, and other PCE homebrew devs.
For PSG there's a good doc on romhacking.net. Peripherals you can find a lot of information about on archaicpixels, and for CD/ADPCM.. I have some documents that mirror what I did in Temper that I can give you after I expand them slightly and fix some errors.