Commit graph

124 commits

Author SHA1 Message Date
Nebuleon Fumika
984682682c Release 1.26. 2013-02-02 01:39:50 -05:00
Nebuleon Fumika
91d7bf5b91 Correct overzealous detection of buffer overruns. It was making the sound crackle constantly, like a record player. Most audible with earphones. 2013-02-02 01:37:16 -05:00
Nebuleon Fumika
25aeb83f7b Release 1.25. 2013-02-01 20:47:46 -05:00
Nebuleon Fumika
d4dd98e8c1 Add an option that controls which element should be more fluid, per game: 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-01 20:09:24 -05:00
Nebuleon Fumika
30fe9eaf6a While killing time between frames, process audio instead of doing nothing. Also correctly fill the buffer with silence when returning from pause. This reduces or eliminates crackling.
The emulator kills time in two circumstances:
* In automatic frameskip mode, without fast forwarding, the emulator kills time if it rendered a frame early.
* In manual frameskip mode, without fast forwarding, the emulator kills time to wait for the next rendered frame.
2013-02-01 18:27:03 -05:00
Nebuleon Fumika
58948ffd1d Make the audio timing more precise.
* Fake out the buffer timing by sending a buffer full of silence when returning from pause. Reduces crackling introduced by the next point.
* Send buffers only once every 23.22 milliseconds, not up to four buffers at once (92.88 milliseconds) and randomly thereafter. Reduces note-length jumpiness.
* Audio may have trouble catching up if external jitter reaches 11.61 milliseconds. That happens if Mode 7 images or filtered modes take a long time to render, or if chips take a long time to execute.
2013-02-01 06:11:59 -05:00
Nebuleon Fumika
58a3dc9b17 Hook fast-forward into Settings.TurboSkipFrames. 2013-02-01 06:10:57 -05:00
Nebuleon Fumika
60f6ffcc70 When starting CATSFC, assume the backlights are both on, so don't delay 100 milliseconds and set both backlights to on. 2013-02-01 00:36:51 -05:00
Nebuleon Fumika
f0fab191e4 Prevent a file descriptor becoming unusable if the emulator configuration file is not in the correct format. 2013-01-29 22:24:20 -05:00
Nebuleon Fumika
cfa1c811c6 Reimplement Quicksort correctly for file selection screens. Before this commit, the emulator could sometimes give a file out of its order, for example an O* file between two S* files. 2013-01-27 00:45:59 -05:00
Nebuleon Fumika
362b28e937 Suspend on lid-close in the menu. 2013-01-27 00:30:48 -05:00
Nebuleon Fumika
dded216137 Turn off the lower screen's backlight when returning from suspend during emulation. 2013-01-26 20:31:11 -05:00
Nebuleon Fumika
365a69d72e Release 1.24. 2013-01-26 19:44:37 -05:00
Nebuleon Fumika
f2f7ef3fe9 Fix Tools/Global hotkeys/* refusing to work by touch. 2013-01-26 17:07:26 -05:00
Nebuleon Fumika
44164cce8c Release 1.23. 2013-01-22 04:55:46 -05:00
Nebuleon Fumika
2cf733eef4 Add three hotkeys: temporary fast-forward, sound toggle and return to menu. These hotkeys can be overridden per game so that the global version of the hotkey can be ignored.
* Language file fixups related to \n (newlines).
* Pictochat fixups: shorten START and SELECT to ST and SEL. Should still be recognisable.
2013-01-22 04:16:15 -05:00
Nebuleon Fumika
f81781ae8c Properly finalise the current menu when returning to the game. Fixes entries "disappearing" in the recently played games menu. 2013-01-21 23:33:03 -05:00
Nebuleon Fumika
0f91ed22f3 Release 1.22. 2013-01-20 22:25:35 -05:00
Nebuleon Fumika
80f2e13043 Fix a regression with touching "recently played games". 2013-01-20 22:22:24 -05:00
Nebuleon Fumika
656eeab87f Release 1.21. 2013-01-20 19:20:54 -05:00
Nebuleon Fumika
7ca34093be Remove GBAFILE from the icon list as it's never used. 2013-01-20 19:17:48 -05:00
Nebuleon Fumika
73e8f96a3b Assert that the icon set will not change according to language. This is possible as of commit 4b4349ac8a. 2013-01-20 18:37:44 -05:00
Nebuleon Fumika
b6a2065e21 Remove SUBSELB from the icon list as it's never used. Make inactive items a deep purple instead of a light teal. 2013-01-20 18:35:16 -05:00
Nebuleon Fumika
31c9101699 Prepare data structures for adding hotkeys. 2013-01-20 18:14:18 -05:00
Nebuleon Fumika
f64980e2c1 Avoid selecting a menu item by touch if the conditions aren't met, part 2: Saved state menu improvements. 2013-01-20 18:13:30 -05:00
Nebuleon Fumika
28464433a8 Show the screenshot for a saved state when touching it once in the Load state row. 2013-01-20 17:21:09 -05:00
Nebuleon Fumika
4c283f5401 Don't clear the screen to black after a file selector. Purely aesthetic. 2013-01-20 16:14:51 -05:00
Nebuleon Fumika
af0ea50e7e Scroll the selected file name faster in file selection dialogs. 2013-01-20 16:05:49 -05:00
Nebuleon Fumika
0cd9ebfb8b GUI touch handling improvements.
* Don't select items defined with type HIDEN_TYPE. That's for items like the card capacity display.
* Don't change current_option and current_option_num until we're sure of what's going on.
* Don't select an item from another menu if you touch a phantom menu item below the last one of the active menu. For example, Video & audio's item 5 would call up the ROM loading dialog. This is now fixed.
* Handle NUMBER_SELECTION_TYPE and STRING_SELECTION_TYPE as invocations of CURSOR_RIGHT. This fixes the language selector not updating the language in the GUI when touched.
* Handle ACTION_TYPE. This fixes the Load cheat file menu item not working when touched.
2013-01-19 23:01:36 -05:00
Nebuleon Fumika
88135c52f8 Remove unneeded volatility, enabling more optimisations. Sound volatility is #define'd away, GUI volatility is simply removed. 2013-01-19 20:28:17 -05:00
Nebuleon Fumika
2bb2ee8c0a Prepare code to ask for a hotkey. Prepare a temporary fast-forward switch. 2013-01-19 02:24:37 -05:00
Nebuleon Fumika
71a57cc449 Prepare for adding hotkeys. 2013-01-19 01:40:38 -05:00
Nebuleon Fumika
395266fcce ICON_BUTTON is index 36, not 46. 2013-01-18 21:46:03 -05:00
Nebuleon Fumika
4b4349ac8a GUI picture overhaul.
* Glass buttons. These new buttons are in the SVG format in source/images if you wish to make derived skins.
* Icons from the Tango Icon Library and the RRZE Icon Set. These new icons are in the SVG format in source/images if you wish to make derived skins.
* Main menu: More readable text on unselected options.
* Main menu: Make "New game", "Return to game" and "Reset game" localised in English, French and Simplified Chinese. These three options also all use the same button image now; snewo, snnewo, sreseto, snreseto, sreteno and snreteno are gone and replaced by smaini and snmaini.
* copyright: Update.
* Align main menu icons and text better.
2013-01-18 21:36:59 -05:00
Nebuleon Fumika
8ae4ee4d51 Fix a bug whereby "state #0" is selected as the default saved state in the 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-18 03:50:41 -05:00
Nebuleon Fumika
76e5f4b571 Return to CPU level 0 after emitting sound if we're delaying for early frames. 2013-01-18 03:36:35 -05:00
Nebuleon Fumika
4c1cae43f2 Revert "Reinstate the interrupt time setting."
This reverts commit 1bc1dfc1ab.

Conflicts:

	source/nds/ds2sound.h
2013-01-18 03:35:14 -05:00
Nebuleon Fumika
0d5be16895 Revert "Reinstate timer-interrupt audio."
This reverts commit 944d9a7294.

Conflicts:

	source/nds/entry.cpp
2013-01-18 03:33:14 -05:00
Nebuleon Fumika
bf5cb54162 Fix multiple compiler warnings: forward declaration, implicit declaration, unused variable, variable used uninitialised, unused function (when not used anywhere else with a #define). 2013-01-18 02:41:32 -05:00
Nebuleon Fumika
5c4e96b326 Remove some unused functions. Raise the CPU frequency for sound mixing if auto frameskip is delaying because it's early. 2013-01-18 01:50:28 -05:00
Nebuleon Fumika
aa54875b05 cppcheck: [nds/gui.c:3130]: (error) Array 'tools_options[2]' index 4 out of bounds
cppcheck: [nds/gui.c:3132]: (error) Array 'tools_options[2]' index 4 out of bounds
2013-01-18 01:20:01 -05:00
Nebuleon Fumika
51e18ffb2f cppcheck: [nds/gui.c:3573]: (error) Possible null pointer dereference: current_option - otherwise it is redundant to check if current_option is null at line 3576 2013-01-18 01:18:11 -05:00
Nebuleon Fumika
4b642ccd3d Lower the timer interrupt interval to 13.3 milliseconds to avoid underflows (silences). 2013-01-17 21:12:23 -05:00
Nebuleon Fumika
1bc1dfc1ab Reinstate the interrupt time setting.
This reverts commit 27d2911fb0.
2013-01-17 18:52:48 -05:00
Nebuleon Fumika
944d9a7294 Reinstate timer-interrupt audio.
This reverts commit 0d048d05ee.
2013-01-17 18:52:22 -05:00
Nebuleon Fumika
582b3a23ce Initialise current_menu to NULL in menu(u16). Otherwise, choose_menu(&main_menu) tries to call the end_function of a menu that's a random pointer. 2013-01-16 03:17:33 -05:00
Nebuleon Fumika
95a1f4c0a3 Release 1.20. 2013-01-14 23:39:47 -05:00
Nebuleon Fumika
be4d4495ba Release 1.19. 2013-01-14 04:30:31 -05:00
Nebuleon Fumika
95b7104d47 Forgot to define inputdata for the button touch commit. 2013-01-14 04:14:47 -05:00
Nebuleon Fumika
c7cc655473 Raise the CPU frequency while loading or saving states and while showing their screenshots. 2013-01-14 04:11:35 -05:00