Commit graph

28 commits

Author SHA1 Message Date
Nebuleon Fumika
a1d1e01e11 Dynamically allocate memory for the file selector to store the name pointers into. Also dramatically simplify the file selector's name management code. This has many effects:
* It allows the file selector to handle directories of more than 511 files and a parent directory entry. (Fixes GitHub issue #37).
* It allows the file selector to sort directories along with files, which is a more common use case (game folders that contain ROM hacks, plus single game files, are sorted by name as the user expects).
* The file selector now reports progress while loading a large directory.
* The screenshot slideshow function now shows an existing dedicated message, "No screenshots found", instead of crashing when the screenshot directory contains no screenshots.

Add Quicksort code from GameYob. See <https://github.com/Nebuleon/GameYob/commit/afbeeba>.

* Faster sorting in the common case where a directory's natural order is already sorted, using the isSorted function.
* Use the median-of-three algorithm first described by Robert Sedgewick to select the pivot. Causes less recursion in many cases.
* Associates file names with their is-directory flag, keeping both in sync.
2013-06-15 23:40:29 -04:00
Nebuleon Fumika
4b5a5a15d7 Add an option to put the game on the Lower Screen.
* Before entering the menu, copy the game screen to the Upper Screen if it's on the Lower Screen.
* Now, the frame that's shown in the menu doesn't appear to be the previous frame for a fraction of a second anymore.
2013-05-20 03:17:02 -04:00
Nebuleon Fumika
936cb38b5e Center text without needing endless spaces; also support \n in centered text.
* Text positioning in message boxes is now controlled by #defines.
* The various MSG_PLAY_SLIDE<n> messages are now one, MSG_SCREENSHOT_SLIDESHOW_KEYS, with \n between lines.
* Use \n in some more message pairs.
* Lengthy scrollers broke. This will be investigated in a later commit.
2013-03-10 21:21:37 -04:00
Diego Liberal
e156b47503 Add a Brazilian Portuguese localisation. 2013-02-14 15:28:38 -05:00
Nebuleon Fumika
a1b2ff6e87 Merge pull request #35 from alexinfurs/master
Add an Italian translation
2013-02-14 04:05:35 -05:00
Nebuleon Fumika
a8c2fcdb2c Add hotkeys to quickly load from and save to saved state #1, as well as to toggle full-screen (going from mode 3, middle of screen, to mode 4, full-screen smoothed).
This commit uses text that has not been validated in some languages.
2013-02-14 03:02:33 -05:00
Alessandro Pelliccia
e7dfd96445 Update source/nds/message.h
Add Italian language
2013-02-13 21:13:29 +01:00
Nebuleon Fumika
18e56b68fd Add retro sound as a setting in all languages except Chinese. 2013-02-09 23:41:06 -05:00
Boriar
267da6d5e1 Add a Spanish translation. 2013-02-08 17:04:32 -05:00
Aeter
fa19e1551a Add a Dutch translation. 2013-02-08 16:52:31 -05:00
SignZ
ea8ff33951 EN: Added a German translation. DE: Deutsche Übersetzung hinzugefügt. 2013-02-07 04:56:34 -05:00
Nebuleon Fumika
04037a3096 When changing languages, quit doing the "Changing language, please wait..." as it only takes a few milliseconds. 2013-02-06 06:27:11 -05:00
Nebuleon Fumika
772e24ae50 Reinstate frame skipping options 0 and 1, but keep the new meaning (>= 2 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-06 03:46:48 -05:00
Nebuleon Fumika
9e87a7a2b2 Implement automatic CPU frequency switching, which improves battery life if 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-06 00:34:01 -05:00
Nebuleon Fumika
f2adea7bb2 Force both manual and automatic frameskipping to be at or above 2. Resets the default value for all games which previously had this value configured. 2013-02-05 19:39:09 -05:00
Nebuleon Fumika
e7ac6f675f Disable the free space line in the options for the time being. Currently it invokes a recursive directory scan to calculate how much space is used first. 2013-02-05 16:35:45 -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
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
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
a6ec18e23f Preliminary support for saving to an arbitrary saved state slot.
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-14 02:51:39 -05:00
Nebuleon Fumika
e2359ee049 Localise Yes(A) and No(B) into English, French and Simplified Chinese as [A] Confirm and [B] Cancel.
CATSFC/system/gui/sbutto.bmp: Widen the button to accomodate this change.
2013-01-13 20:22:41 -05:00
Nebuleon Fumika
c01c25febe Add support for user-selected and automatic frame skipping. Add support for 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-07 02:16:34 -05:00
Nebuleon Fumika
6c5bd75716 Language file overhaul, part 2. Remove unused messages in all languages.
It's actually reloading icons that takes so much time.
2013-01-06 03:45:11 -05:00
Nebuleon Fumika
81cf5b3cd1 Language message overhaul, part 1.
Clean up the names of messages. Mark those that are unused as such in code comments. Raise the CPU level while loading a message file, because it really does take half a second to load a 16 KB file on the lowest frequency (what the eff?).
2013-01-06 01:07:42 -05:00
Nebuleon Fumika
8085880130 Remove the SNES Open Bus behaviour by default. Also simplify translation again.
SNES Open Bus is a quirk of the memory subsystem that allow reads of invalid addresses to return the last byte read from memory. However, it is seldom needed by a game, and it costs 1 to 3 MIPS instructions per SNES instruction to emulate.

If you need SNES Open Bus, you can remove -DNO_OPEN_BUS from the Makefile.
2012-12-20 18:14:24 -05:00
Nebuleon Fumika
973cd8d5e3 EN: Link the French translation to the interface. FR: Ajout de la traduction française à l'interface.
EN:
* bdf_font.c: Add support for having a main font, [0], of more than 128 characters. Refactor character width checks into a new function, BDF_width16_ucs.
* bdf_font.h, draw.h, gui.c: Use UTF-8 for all strings to allow more translations. Use BDF_width16_ucs where possible.

FR:
* bdf_font.c: Prendre en charge une police principale, [0], de plus de 128 caractères. Diriger les vérifications de la largeur d'un caractère vers une nouvelle routine, BDF_width16_ucs.
* bdf_font.h, draw.h, gui.c: Utiliser le codage UTF-8 pour toutes les chaînes pour permettre d'autres traductions. Utiliser BDF_width16_ucs là où c'est possible.
2012-12-19 18:38:04 -05:00
Kitty Draper
d40ae99422 first commit 2011-03-05 21:39:25 -05:00