aboutsummaryrefslogtreecommitdiff
path: root/source/nds
AgeCommit message (Collapse)Author
2013-01-18Fix a bug whereby "state #0" is selected as the default saved state in the ↵Nebuleon Fumika
saved states menu if there were no saved states before. Electing to load #0 messed with the game; electing to save #0 erased the game-specific configuration.
2013-01-18Return to CPU level 0 after emitting sound if we're delaying for early frames.Nebuleon Fumika
2013-01-18Revert "Reinstate the interrupt time setting."Nebuleon Fumika
This reverts commit 1bc1dfc1abf71795c43fe7abb2db487a70c524b2. Conflicts: source/nds/ds2sound.h
2013-01-18Revert "Reinstate timer-interrupt audio."Nebuleon Fumika
This reverts commit 944d9a729455de435c3d200752308ceedf250196. Conflicts: source/nds/entry.cpp
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-18Remove some unused functions. Raise the CPU frequency for sound mixing if ↵Nebuleon Fumika
auto frameskip is delaying because it's early.
2013-01-18cppcheck: [nds/gui.c:3130]: (error) Array 'tools_options[2]' index 4 out of ↵Nebuleon Fumika
bounds cppcheck: [nds/gui.c:3132]: (error) Array 'tools_options[2]' index 4 out of bounds
2013-01-18cppcheck: [nds/gui.c:3573]: (error) Possible null pointer dereference: ↵Nebuleon Fumika
current_option - otherwise it is redundant to check if current_option is null at line 3576
2013-01-17Lower the timer interrupt interval to 13.3 milliseconds to avoid underflows ↵Nebuleon Fumika
(silences).
2013-01-17Reinstate the interrupt time setting.Nebuleon Fumika
This reverts commit 27d2911fb09ad81849c5df1958143c6878589450.
2013-01-17Reinstate timer-interrupt audio.Nebuleon Fumika
This reverts commit 0d048d05ee50625f15d5235d362df6ee71903fc5.
2013-01-16Initialise current_menu to NULL in menu(u16). Otherwise, ↵Nebuleon Fumika
choose_menu(&main_menu) tries to call the end_function of a menu that's a random pointer.
2013-01-14Release 1.20.Nebuleon Fumika
2013-01-14Release 1.19.Nebuleon Fumika
2013-01-14Forgot to define inputdata for the button touch commit.Nebuleon Fumika
2013-01-14Raise the CPU frequency while loading or saving states and while showing ↵Nebuleon Fumika
their screenshots.
2013-01-14Remove some comments in draw_yesno_dialog to make it easier to read.Nebuleon Fumika
2013-01-14Make yes/no dialog(ue)s respond to touches on the Yes and No buttons.Nebuleon Fumika
2013-01-14The delete (delette?) save state submenu still had 10 slots hardcoded.Nebuleon Fumika
2013-01-14Make "Create saved state" have its own row of slot cells.Nebuleon Fumika
Raise the number of cells to 16. Cache existence of saved state files, and invalidate the cache when saving or deleting a saved state. CATSFC/system/gui: Make the unselected and selected cells more visibly different, while also leaving full and empty cells visibly different.
2013-01-14Preliminary support for saving to an arbitrary saved state slot.Nebuleon Fumika
Currently, tapping a cell representing a saved state slot in the menu will load it, regardless of the current option, save or load. So the save option only accepts Left, Right and A.
2013-01-13Prevent the "Load cheat file" option from showing a file selection dialog if ↵Nebuleon Fumika
no game is loaded.
2013-01-13Use the same update method as the rest of the code to display saved-state ↵Nebuleon Fumika
screenshots on the upper screen.
2013-01-13Localise Yes(A) and No(B) into English, French and Simplified Chinese as [A] ↵Nebuleon Fumika
Confirm and [B] Cancel. CATSFC/system/gui/sbutto.bmp: Widen the button to accomodate this change.
2013-01-13Release 1.18.Nebuleon Fumika
2013-01-13Remove the interrupt time setting.Nebuleon Fumika
2013-01-13Revert timer-interrupt audio, but not optimisations done since then. Get the ↵Nebuleon Fumika
controller status every scanline again.
2013-01-13Raise the CPU only after the delay required by ds2_setBacklight().Nebuleon Fumika
2013-01-12Stop using the deprecated function S9xMixSamplesO and use S9xMixSamples instead.Nebuleon Fumika
Wrap the offset into the audio buffer less often.
2013-01-12Remove 2 extraneous delays. The 100-millisecond delays before ↵Nebuleon Fumika
ds2_setBacklight() MUST STAY, however, otherwise the emulator can crash with the bottom backlight off if a touch is recognised twice in a row. That happens with some broken styluses, so it's not unexpected.
2013-01-12Fix a buffer overflow in audio handling code that corrupted memory used to ↵Nebuleon Fumika
carry the state of the GUI.
2013-01-12ds2sound.h: Set the interrupt interval to 15.36 milliseconds and explain why.Nebuleon Fumika
2013-01-11Stop constantly testing for 16-bit and stereo in sound handlers. Define ↵Nebuleon Fumika
FOREVER_16_BIT_SOUND and FOREVER_STEREO and use them throughout the code. This is essentially commit 6b36e79013d4c9273a96a9783a2bccdb516f174a, but for sound instead of graphics.
2013-01-11Fix the interrupts glitching sound. Put the sound back at 22050 Hz.Nebuleon Fumika
2013-01-11Reinstate some delays needed by the code to avoid crashing, and actually ↵Nebuleon Fumika
explain in code comments why they're needed. I know ds2_setBacklight(unsigned int) needs a delay before it, otherwise if done too close to another call, it crashes. This partially reverts commit 8951fdff1aada126257e07699ea6f132cb8d2e65.
2013-01-09Release 1.17.Nebuleon Fumika
2013-01-09Attempt to fix the crashing with sound interrupts, part 2: Stop the timer ↵Nebuleon Fumika
before the menu, and restart it after it ends.
2013-01-09Increase the audio frequency to 48 kHz. Timer interrupt intervals and buffer ↵Nebuleon Fumika
sizes are also tested at 32 kHz and 44.1 kHz.
2013-01-08Try fixing a crash in the sound interrupt.Nebuleon Fumika
2013-01-08Release 1.16.Nebuleon Fumika
2013-01-08Configurable interrupt interval for the sound timer. Right now, only 22050 ↵Nebuleon Fumika
Hz audio at 2000-microsecond intervals works.
2013-01-08GLORIOUS interrupt-based sound playback. Now, the note-length-hopping ↵Nebuleon Fumika
problem isn't as apparent anymore, and automatic frame skipping doesn't go to 8 FPS all the time in Super Mario World. Thank the deities! Reverses the auto frameskip synchronisation from commit dac11c74ac112728016e51625ac9f2a727152ddd, because that doesn't play well with interrupts.
2013-01-07Release 1.15.Nebuleon Fumika
2013-01-07Require auto_equivalent_skip to be greater than 0 before decrementing it if ↵Nebuleon Fumika
the code is drawing a frame early in automatic frame skip mode. Otherwise, overflow occurs, and we skip 4 billion images.
2013-01-07Revert "Add a bit that tolerates 1/16 latency per frame in automatic ↵Nebuleon Fumika
frameskip mode." This reverts commit d9b6322caafcbd355848a32acd8b8c0fa1746264.
2013-01-07Add a bit that tolerates 1/16 latency per frame in automatic frameskip mode.Nebuleon Fumika
Remove old automatic frameskip code.
2013-01-07Smooth out the automatic frame skipping such that it doesn't go from 1 FPS ↵Nebuleon Fumika
to 8 FPS right away and constantly. The equivalent frame skip will be 2, 3, 5 or 8 most of the time, depending on the game, and will vary a bit depending on rendering demands. For example, the frame skipping in Super Mario World is 3 on the map and in graphically simple levels, and 5 in complex levels.
2013-01-07Fix an off-by-one in the manual frameskip code. It would raise the sound ↵Nebuleon Fumika
speed by 25% if frame skip 3 (Show 1 in 4) rendered a frame early. Optimise the controller code. I don't expect to allow remapping any time soon, because the DS has buttons for every single SNES controller button and nothing more.
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-06Language file overhaul, part 2. Remove unused messages in all languages.Nebuleon Fumika
It's actually reloading icons that takes so much time.