QUOTE
A way to get around lack of high-res timers is to wait for a conservatively low value (in your case, 80 should hopefully do it) then spin lock until it hits. Unfortunately this will use CPU..
Can you explain this in a little more detail? To do a spinlock I would need a very accurate method of measuring time, right? SDL_GetTicks() still has a granularity of 1ms.
QUOTE
Really the audio engine should not be based around a timer of your design but around an audio callback. Since that's probably the idea behind the one Cave Story implements then I'm sure you can migrate it to this.
The mixer uses a callback. Only the music engine uses a timer to play notes. Everytime the timer is triggered the next note is being played. Depending on the speed of the current track the timer value is adjusted. So I not only have 86 ms, but also funny values like 105, 88, 128, etc. depending on the music being played.
Instead of this timer I could use a thread, like while (music_playing) { SDL_Delay(speed); PlayNote(); } or something. But this would probably lead to race conditions. Also, an additional thread isn't the best idea.
QUOTE
Is there a simple way to exit the game...???
Press Start+Select simultaneously. Do that again to exit. R to reset and B to return to the game.
QUOTE
Is there a way by which we can donate to this fine project? Also, I think it would be nice to organize a thank you for Pixel's permission as well. I'm sure Shih Tzu would help out.
You can donate by either making a cool port/project yourself, or by helping me with the remaining issues. I for myself don't take anything.
A thank you to Pixel would be really nice.