aboutsummaryrefslogtreecommitdiff
path: root/source/nds/gui.h
AgeCommit message (Collapse)Author
2013-02-06Yeah... Despite the audio optimisations, sound still crackles with display ↵Nebuleon Fumika
double-buffering. Disable that, again.
2013-02-06Reinstate frame skipping options 0 and 1, but keep the new meaning (>= 2 ↵Nebuleon Fumika
equivalent skip level) for automatic frame skipping. Remove the automatic CPU frequency option, which was making audio emit 0.25 second of silence every so often.
2013-02-06Implement automatic CPU frequency switching, which improves battery life if ↵Nebuleon Fumika
playing games that don't use all of the MIPS CPU. If all of it is indeed needed, then the game will constantly play at 396 MHz.
2013-02-05Force both manual and automatic frameskipping to be at or above 2. Resets ↵Nebuleon Fumika
the default value for all games which previously had this value configured.
2013-02-05Change the upper screen updates to be double-buffered. Require that one ↵Nebuleon Fumika
audio buffer be free (1 out of 4).
2013-02-03Synchronise the controller status more spread out inside a rendered frame:Nebuleon Fumika
* before rendering a background; * before rendering sprites; * while rendering more than 128 samples of audio at once ("Prefer fluid video"); * after every 16 scanlines of CPU execution instead of every 1; * while waiting for an audio buffer to become available; * while killing time between frames with fast-forward disabled. Controller presses and releases are now combined in a DS button bitfield using a shorter 32-bit algorithm. See entry.cpp:NDSSFCAccumulateJoypad and #define ACCUMULATE_JOYPAD in the source. This is still not suitable for playing platformers frame-perfectly, but it's much better than half a second of latency to press or release a button, and one still needs to press buttons a bit more than just light taps. I'd say 50 milliseconds is the latency now. Platformers requiring more precision can be played with frameskip 0. DMA does not require double-buffered displaying, so synchronise the controller more often by disabling double-buffered displaying again.
2013-02-03Force waiting for a screen to be transferred (update mode 1) because ↵Nebuleon Fumika
otherwise the next screen can go into DMA. Use channel 1 instead of channel 5, which must be busy for some reason.
2013-02-03Make it easier to change the "high" and "low" CPU frequencies, as well as to ↵Nebuleon Fumika
switch to the user's chosen frequency for the game. Conflicts: source/nds/ds2_main.c source/nds/entry.cpp source/nds/gui.c
2013-02-01Add an option that controls which element should be more fluid, per game: ↵Nebuleon Fumika
video or audio. This makes most games playable, but the player can choose to get fluid audio instead of fluid video in sound-test modes or games with epic soundtracks.
2013-02-01When starting CATSFC, assume the backlights are both on, so don't delay 100 ↵Nebuleon Fumika
milliseconds and set both backlights to on.
2013-01-20Prepare data structures for adding hotkeys.Nebuleon Fumika
2013-01-19Prepare code to ask for a hotkey. Prepare a temporary fast-forward switch.Nebuleon Fumika
2013-01-18Fix multiple compiler warnings: forward declaration, implicit declaration, ↵Nebuleon Fumika
unused variable, variable used uninitialised, unused function (when not used anywhere else with a #define).
2013-01-07Add support for user-selected and automatic frame skipping. Add support for ↵Nebuleon Fumika
PAL timings (20 ms per frame). User-selected frameskip causes slowdowns if the game runs slower than the resulting frame rate, but synchronises correctly if the game runs faster. Automatic frame skipping is still the default. It now only skips up to 8 frames, but in some games still skips that entire 8 frames. What's needed is an algorithm that averages frame latencies over a few seconds and skips while the latency is LOWER than the average.
2013-01-02Sleep when the lid is closed AND emulation is running. I don't know to what ↵Nebuleon Fumika
extent this will save on battery usage, though I do set the DSTWO's CPU to the lowest frequency while it sleeps.
2012-12-26Add the update methods for the upper and lower screen into defines.Nebuleon Fumika
2012-12-22Preliminary Snes9x-based cheat code support. Not tested, because the file ↵Nebuleon Fumika
selection interface freezes when it gets to the folder containing Mightymo's cheat files, whereas it did not do this before with the converted Mightymo cheats. (335 files -> 679, though.)
2011-03-05first commitKitty Draper