Roadmap TODO:
- Convert CD-Block HLE logging to 2021;
- Fix remaining CD-Block HLE code smells;
- Add a CD-Block LLE stub driver (in etc folder?), having it disabled means that nobody will ever look at it.
iirc the comms with the actual CD drive uses serial, which should be already addressed by upcoming Phil B. SH1 changes?
- Fix CD-Block ISO9660 parsing: it just reads the first sector worth of files and forgets the rest.
This isn't an issue in most games, but the few that does access ID scopes outside the range (Sengoku Blade and Chaos Seed) are quite high profile too.
- Understand what exactly Amagi Shien and Game no Tatsujin 2 expects from the CD Block in order to not stall.
My gut instinct tells me that "PAUSE" should eventually become a "STANDBY", but if I have to follow docs waiting for default 180 seconds looks too overkill.
It would make much more sense to be 5 seconds instead?
- Retrieve VDP1 timings from games that clearly are doing the wrong fetch at the wrong time (examples: Druid, Elevator Action Returns, both D&D, Galaxy Fight)
- Understand the correct logic for VDP1 CEF / framebuffer swaps (Blazing Tornado bare Versus screen, Cyberbots, Doom)
- Understand what Sega was thinking in Greatest Nine '97 / '98 and correlated spin-offs when accessing the SMPC handshake bit after slave on command:
(pictured gnine98s, others behaves the same on different places)
060050DE: 6110 MOV.B @R1,R1 ; $20100063
060050E0: 601C EXTU.B R1,R0
060050E2: 8801 CMP/EQ #$01,R0
060050E4: 89FE BT $060050E4 ; delay slot? Just buggy and actually already cleared at this point?
060050E6: D103 MOV.L @($000C,PC),R1 [060050F4]
060050E8: 2140 MOV.B R4,@R1
060050EA: 6FE3 MOV R14,R15
060050EC: 000B RTS
060050EE: 6EF6 MOV.L @R15+,R14