Time to resurrect this old thread!
I'm pretty close to having the fast CD code from Xanadu 2 completely disassembled-and-commented so that it can be included as source code in homebrew games.
It's got replacements for the BIOS functions AD_RESET, AD_TRANS, AD_CPLAY, AD_STOP and CD_READ.
It's approx 2KB of code, and I can see some wasted space in there that could be optimized away to make it smaller ... for instance, there's still code in there to read from Hudson's Development Kit SCSI.
This opens up the possibility completely disabling the CDROM BIOS, taking over the whole system, and mapping RAM into bank 7 instead of ROM.
Does that idea interest the other programmers here?
What other BIOS functions would you really need (in practice) during a game's execution?
Certain things like CD_DINFO and CD_BASE come to mind ... but they could easily be done at boot time and the results could be cached before switching to the "replacement" BIOS.
Does anyone ever use things like CD_SEEK, CD_SEARCH, CD_SUBRD, or CD_PCMRD?
Wasn't there a mention of someone having source code for some BM_* backup memory replacements?
<EDIT>
I guess that there's also he question of AD_READ and AD_WRITE.
Has anyone found a practical use for those since the Super System Card came out and cured the worst of the PCE's RAM problems?
<EDIT2>
D'oh!
Of course ... AD_READ does still have a potential benefit, in that it can be used for background streaming of data off the CD.
It *might* just be faster to read a sector or two at a time from the CD directly ... or it might not.
Perhaps someone else has investigated the HuVideo player and knows how it handles its streaming?