Commit dabb293
committed
HLE CD_read: stream continuation for repeated identical CD_reads
When a boot stub re-issues the same CD_read (same D0/D1/A0/A1) without
varying parameters, real hardware is still feeding new sectors of disc
data through the I2S stream — each call produces a different chunk.
Without a notion of "where we left off" the HLE handed the same 5KB to
the game over and over (Iron Soldier 2 has been stuck in this loop).
We now remember the (D0, D1, dest, end) signature of the prior call
plus the post-transfer LBA, and on a matching repeat we resume the
sentinel scan from that LBA instead of the boot-stub-supplied MSF.
This unblocks the multi-chunk boot pattern but does NOT fix Iron
Soldier 2 by itself: its sentinel sync block sits at a single fixed
LBA in the boot-stub track, so even after resuming we keep finding
the same one. Iron Soldier 2 ultimately stops at \$007416 polling
RAM[\$44F4] for a flag updated by an interrupt path we don't yet
emulate; further progress needs real interrupt-driven streaming.
No PASS regressions; all five PASSes hold (Battle Morph, Dragon's
Lair, Highlander, Space Ace, Highlander).
Made-with: Cursor1 parent 9fbc681 commit dabb293
1 file changed
Lines changed: 42 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
93 | 105 | | |
94 | 106 | | |
95 | 107 | | |
| |||
314 | 326 | | |
315 | 327 | | |
316 | 328 | | |
317 | | - | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
318 | 347 | | |
319 | 348 | | |
320 | 349 | | |
321 | 350 | | |
322 | 351 | | |
323 | 352 | | |
324 | | - | |
| 353 | + | |
325 | 354 | | |
326 | 355 | | |
327 | 356 | | |
| |||
479 | 508 | | |
480 | 509 | | |
481 | 510 | | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
482 | 520 | | |
483 | 521 | | |
484 | 522 | | |
| |||
675 | 713 | | |
676 | 714 | | |
677 | 715 | | |
| 716 | + | |
| 717 | + | |
678 | 718 | | |
679 | 719 | | |
680 | 720 | | |
| |||
0 commit comments