mirror of https://github.com/bsnes-emu/bsnes.git
Update to bsnes v042r05? release.
New WIP. Wasted two and a half hours trying to figure out why re- implementing IRQs at home was failing in Parodius. Finally just reverted to wip05 and started again, changing one line at a time. Turns out I inverted the reset release flag by mistake for the SA-1 CPU. Fun. Adds S-CPU -> SA-1 IRQs, DMA IRQs and NMIs + SA-1 -> S-CPU IRQs + CH1DMA IRQs. Also slightly improves variable bit-length reading and removes DPRIO mode for now until I can test it properly. Parodius, SRW: Gaiden and Kirby: SS should all be fully playable now. Mario RPG is damn close, but it freezes immediately after you exit the level up bonus screen. I don't have any idea what it wants. The graphics on the bonus screen don't show up either, as I don't support char conversion modes 1 or 2 yet (it uses mode 1.) How annoying ... first the graphics on the logo are bad. Add the ALU, good. Now the title screen background is black. Fix the ALU MA register reset, good. Now it freezes after the first intro scene. Add SA-1 -> S-CPU IRQs. Now it freezes half-way through the intro. Fix S-CPU /IRQ line holding from the SA-1. Now it freezes at the start of the level up bonus screen. Add CHDMA IRQs. Now it freezes immediately after the level up bonus screen. I have no idea what the hell SIV / SNV are for. I'm guessing the SA-1 controller detects which processor activates SA-1 IRQs and uses that vector address ...? It obviously can't over-ride the S-CPU's vector addresses. Documentation is shit. It doesn't specify what vectors DMA / CHDMA use, or what to do without specific general DMA / CHDMA IRQ enable flags in the control registers, and on and on. [No archive available]
This commit is contained in:
parent
3a6eb56cef
commit
11e0a2ac18