|Home | Downloads | Screenshots | Forums | Source code | RSS|
Timing renovation, ep 4: world of shit
Dec 6th 2018, by StapleButter
Took a while, but I have finally implemented the new memory timings, atleast CPU-side. DMA is not done yet, but will be quick to do.
Noting that these timings, atleast ARM9-side, would still be faster than the real thing, mostly due to not emulating cache misses and a lot of other little things. But it should be a lot closer.
And, how does that fare?
So much for that.
For now it's a total fucking trainwreck. Everything is running too slow and there are quite a few issues with it. For example, Rayman DS is slow as shit.
And even worse, the Millionaire FMV bug.
As it still happened, I extracted the FMV decoder code to run it within a test app. So it runs within the same conditions: code in ITCM, data it accesses in mainRAM, cache enabled over similar regions, etc.
What's the result? On hardware, the decoder is taking ~724 scanlines to run. Which means it actually spans over several frames, and, since it's set to start upon VCount=20, by the time it would be done, VCount would be 218. Which is past scanline 214, so under these conditions, we would be getting glitches on hardware too. And yet, the thing runs fine on hardware.
I don't fucking understand it.
I fail to see how all that is possible.
Unless libnds is changing some setting that radically affects timings.
|2 comments have been posted.|