Robster posted on Jul 26 2004 at 07:39 PM said:
fDave: can you post the latest version on your site? I'd be happy to have a look at it. Could be a number of things I guess, couldn't say without more details.
Okay uploaded Cyclone, Pico, PicoDrive, GigaDrive (usual spot)
( which is
http://www.finalburn.com/cyclone/source.html by the way )
This is version 0.025 by the way.
Ideas totally welcome, I am one confused monkey.
In it's current state it works... just. The source loop is at 6 segs (100ms latency). Okay, so here's the story so far what I've done to it
Move it down to 4 or lower, and it goes all funny, which people are saying it shouldn't do. I tried doing mmu thing. No joy at all.
If the Megadrive display is disabled (e.g. on Strider between game sections), the sound goes wrong! It seems if it rendering LESS, the sound goes wrong. Which is just plain weird and is messing with my head.
Problem number 3, I started to rewrite the line renderer (Draw2.cpp). Uncomment it and you'll sound hear the problem - even just rendering the background colour, the sound goes wrong.
I tracked down the functions I thought needed nops in (EmulateScan()) and lo and behold, the nops didn't help at all. As a result, that is messing with my head.
And finally, very worryingly weird thing: if I used the faster execution routine in Pico.cpp PicoFrameSimple() I get the sound problems (with Draw2.cpp). However if I use the slower PicoFrameHints() all the time, the sound problems go away.
I then thought maybe Cyclone itself was using the bus, so I split Cyclone execution into sections with nops in between... no difference, sound still buggered with Draw2.cpp
It seems whatever I do, if I try to make the emulator faster, I'm immediately punished by having the sound wrecked!
Tell me I'm not going insane?
By the way, does anyone know how to pageflip the screen without taking about 3ms to do it like the official functions?