summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mips: Explicitly state the required alignment everywhere in stub.SHEADorigin/masterorigin/HEADmasterNebuleon2017-05-281-0/+15
|
* mips: Use the ROTRV instruction when appropriate (R2)Nebuleon2017-05-211-2/+5
|
* mips: Move jump tables to the .data sectionNebuleon2017-05-211-3/+52
|
* dstwo: Rework ReGBA_MakeCodeVisible for efficiencyNebuleon2017-05-211-1/+4
|
* mips: Do not trap on overflow in assembler filesNebuleon2017-05-212-7/+7
|
* dstwo: Use a single allocation to hold all names in the file selectorNebuleon2017-05-041-15/+39
| | | | | Makes the file selector able to handle large file counts without slowing down massively.
* dstwo: Overhaul the display of Loading and Sorting in file selectorsNebuleon2017-05-041-10/+8
| | | | | | | | | * Loading (N) and Sorting were previously not shown at all due to incorrect partial screen updates. They have been corrected. * Don't wait for the screen to be updated to start loading, or to start sorting. Calls to DS2_AwaitScreenUpdate() are moved after processing or before screen writes for Loading (N).
* dstwo: Use extension readdir_stat in load_file for efficiencyNebuleon2017-05-021-0/+7
|
* dstwo: Make it explicit that $gp cannot be used in this applicationNebuleon2017-04-281-2/+2
| | | | | | It's used to hold the value of ARM register 13, so it cannot hold a single value across the entire application runtime to optimise data accesses.
* dstwo: Make the plugin from a packed executableNebuleon2017-04-222-2/+3
|
* mips: Embed constants from Thumb PC-relative LDR instructions in ROMNebuleon2017-04-126-5/+51
| | | | | | | | | Formerly those effective constants would be reloaded from the ROM at every access; now, they are emitted directly in native code. Execution-wise, this saves 13 instructions minus those needed by the constant load; code generation-wise, this saves 4 instructions minus those needed by the constant load.
* dstwo: Fix an off-by-one error in BDF_CutUCS2sNebuleon2017-04-122-22/+21
|
* dstwo: Validate GUI icon dimensionsNebuleon2017-04-123-2/+2
| | | | | | | | | * gbafile.bmp: Add a row to the bottom, making it 16x16 from 16x15. * chtfile.bmp: Declare in draw.c as 16x16, not 16x15, and increase the size of gui_picture to match. smsel.bmp is also resaved as 16-bit BMP from 24-bit.
* dstwo: Add CPU and RAM frequency optionsNebuleon2017-04-104-122/+121
| | | | | | | | | | | | | Contrary to the per-game option that was present before, these two options affect all games. The rationale is that: * A per-game option, if set too high, would be applied immediately after reloading the game, making it unstable again. The user has to delete the game configuration file to get out of this. * If the CPU is overclocked but running a game that doesn't use up all the extra speed, execution will be more often suspended. The power savings may be comparable.
* dstwo: Make the Nintendo DS sleep when its lid is closedNebuleon2017-04-061-16/+4
|
* dstwo: Wait with more power efficiency in draw_yesno_dialogNebuleon2017-04-061-1/+1
|
* dstwo: Align the backgrounds to 4 bytes for maximal memcpy efficiencyNebuleon2017-04-062-55/+55
|
* mips: Use functions to load literals and new PC valuesNebuleon2017-04-061-31/+29
| | | | | | Literal loading and PC loading took up the great majority of the code, after preprocessing, of block_translate_arm and block_translate_thumb. The functions are expected to live longer in the instruction cache.
* mips: Remove superfluous load of literal address in generate_load_memoryNebuleon2017-04-031-1/+0
|
* mips: Remove unneeded macrosNebuleon2017-04-031-27/+0
|
* mips: Delete duplicated emitter macro definitionsNebuleon2017-04-021-48/+0
|
* Remove all sorts of unused code and variables from "main" filesNebuleon2017-03-315-305/+5
|
* dstwo/draw.c: Improve names, add documentation, delete dead codeNebuleon2017-03-306-660/+325
| | | | | | | | | | | | | The BDF_cut_unicode function, which previously had two tasks (cutting up text strings to fit in a certain width, and getting the width of a text string), is now fully split into two functions. The gui_picture array, which contains all the icon data, is now sized to fit the current icons exactly. Its old size was 1048576 bytes; its new size is 358052 bytes, saving 690524 bytes. GUI icons are now drawn from const pointers, and icon descriptors are also passed as const pointers.
* dstwo: Rename ds2_main to main; forward argc and argv to gpsp_mainNebuleon2017-03-291-4/+2
| | | | The return value of gpsp_main is also forwarded.
* dstwo: Remove the call to DS2_InitFS, which is no longer neededNebuleon2017-03-291-4/+0
|
* dstwo/gui.c: Overhaul the file selector codeNebuleon2017-03-272-408/+208
| | | | | | | | | | | | | | | | | | * Instead of directory flags for each entry living in a separate array, requiring code to maintain two allocations, they're now next to the names in a struct, and the single allocation is an array of that struct. * Sorting is done by the standard library's qsort function using a shorter name sorting function that receives struct pointers. * Some uint32_t variables held Boolean values, so their type has changed to bool; some others were changed to size_t. * A bug is fixed whereby negative scroller indices were accessed when resetting horizontal scrollers after new selections. * Aesthetic improvements and documentation.
* dstwo: Mark some variables with wasteful zero-initialisationNebuleon2017-03-273-18/+13
|
* Mark some ReGBA core variables with wasteful zero-initialisationNebuleon2017-03-274-32/+47
|
* mips: Remove declarations of 4 undefined external functionsNebuleon2017-03-272-7/+0
|
* Add a macro to declare variables with wasteful zero-initialisationNebuleon2017-03-272-0/+9
| | | | | The DSTwo port implements this to move those variables into the .noinit section.
* dstwo/sdk-modifications: RemoveNebuleon2017-03-27112-27302/+0
| | | | | | This directory contained modifications to the Supercard Team's DSTwo SDK as well as a new version of zlib. That SDK is no longer used; an even newer version of zlib, version 1.2.11, is also available.
* dstwo: Complete rework for correctness and compatibilityNebuleon2017-03-2544-9718/+6304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bdf_font.c: Fixed a bug whereby the ODF header validation code, fed with an invalid, non-null-terminated header, would search the whole address space for the termination byte. * cheats.c: Delete "cht format" cheats, whose code pretty much abused everything in the C language. Perhaps more notably, it tried to use native (MIPS) pointers as GBA addresses. If you want to use cheats, please rewrite "cht format" cheats into the GameShark format, which has much cleaner code. * The CPU frequency option and card free space display in the Options menu have been deleted. * The Makefile is reworked to use $SCDS2_TOOLS/scds2_rules. * s8, s16, s32, u8, u16 and u32 are replaced with the [u]intN_t types defined in <stdint.h>. Display of those types is changed to use the PRIu and PRIX macros defined in <inttypes.h>. Some variables of type unsigned char really hold Boolean values, so their type is now bool. The type of some variables of type unsigned int have been changed to either uint32_t or size_t. * Inclusions of headers "ds2_malloc.h", "ds2_types.h" and "fs_api.h", from the Supercard Team's API, are replaced with C standard headers (<stdlib.h>, <sys/types.h>, <stdio.h>, <sys/stat.h>, etc.) * Calls to DSTwo input/output functions are modified to use the DS2_* functions from <https://github.com/Nebuleon/Supercard-API>. * Extra semicolons after the final } of functions resulting from some macro expansions are deleted. * gcc 5.2.0 emitted bad MIPS code for the nested functions in the old source code for the menu. It has been reworked completely, based on the menu code for the GCW Zero version, with a new input dispatcher and functions to accommodate touch screen input on the Nintendo DS, and the functions are no longer nested. Code duplication is decreased; default functions handle most of the menus; and only some menus have specialised functions. This greatly helps readability and maintainability, as well as reducing the code size, both in source code terms and MIPS code terms. DefaultDisplayValue now displays option values right-aligned. Space alignment and format codes in language.msg have been removed. The Cheats menu is deleted. Its icons are still loaded, however. The screen is no longer copied before drawing a message box. The code that reads the preview screenshot of a saved state is made faster by using fread() only once instead of 160 times. * bdf_font.c: Functions that deal with text widths have been reworked for efficiency and/or readability and renamed. Some other functions have had comments added to them to describe their usage, especially the BDF_cut_unicode function. Functions only dealing with ASCII have been deleted in this file if they had equivalents dealing with UTF-8. The BDF_render16_ucs function has had its v_align parameter deleted because only the top alignment looked any good. * bitmap.c: One of the methods to read bitmap files, which needed all callers to post-process the results from 16-bit or 24-bit pixels to the 15-bit format used by the Nintendo DS, has been removed. It has been replaced by a single function which handles the conversion. In addition to being more efficient because it converts the input file into the output buffer directly, it handles bitmaps with dimensions different from those expected by the caller, handles 16-bit bitmaps with any R, G and B bitmasks, and handles top-down bitmaps (headers having a negative height). * draw.c: Horizontal text scrolling functions are modified to create, return and use dynamically-allocated pointers to scroll_string_info instead of using a statically-allocated array of 16 entries. * gpsp_main.c, gui.c: Use printf to display initialisation errors. It goes to the Nintendo DS, which displays it very quickly and nicely. * guru_meditation.c, start.S: Delete. The MIPS start code and the ARM side code now handle exception handling. * Lots of compiler warnings, mainly regarding signed and unsigned int comparisons, pointers used as integers without casting and integers used as pointers without casting, have been addressed. * More pointer parameters, especially file names, are declared const. This also applies to global variables, especially those initialised with string literals.
* Release version 1.45.5.origin/ipuNebuleon2014-08-214-4/+4
|
* Support hardware-based scaling on the GCW Zero.Nebuleon2014-07-198-18/+101
|
* Release version 1.45.4.Nebuleon2014-05-254-4/+4
|
* GCW Zero: Allow Start+Select to enter the menu as well as Power.Nebuleon2014-05-254-10/+29
| | | | | | This implements the unified emulator menu buttons requested by the community at Dingoonity. It also disables the prior Menu hotkeys set by users in the interface. The manuals in English and French are updated. The manual in Spanish is not.
* OpenDingux: Update the manual with the new way to enter the menu.Nebuleon2014-01-173-3/+3
|
* OpenDingux: Release 1.45.3.Nebuleon2014-01-171-1/+1
|
* mips: Ensure compliance with the recommendation to clear instruction hazards ↵Nebuleon2014-01-161-8/+17
| | | | after writing code in the MIPS32R2 documentation.
* OpenDingux: Better handle very short presses of buttons, including the Power ↵Nebuleon2014-01-141-22/+35
| | | | flick (GCW Zero).
* GCW Zero: Accept flicking Power as a way to enter the Main Menu.Nebuleon2014-01-142-18/+27
|
* OpenDingux: Use triple buffering in SDL if supported.Nebuleon2014-01-071-1/+7
|
* OpenDingux: Correctly unlock and lock the surface for blitting the unscaled ↵Nebuleon2014-01-071-0/+6
| | | | mode border.
* OpenDingux: Lock and unlock the screen surface to access pixels directly.Nebuleon2014-01-063-10/+21
|
* OpenDingux: Release 1.45.2.Nebuleon2013-12-011-1/+1
|
* OpenDingux: Recode subpixel scaling as a bilinear filter with some extra ↵Nebuleon2013-11-291-38/+375
| | | | processing.
* OpenDingux: Add software bilinear scaling. Rename the original scalers to ", ↵Nebuleon2013-11-293-51/+409
| | | | fast" in the GUI.
* OpenDingux: Add sub-pixel rendering scalers. The full-screen scaler is ↵Nebuleon2013-11-244-3/+167
| | | | courtesy of kuwanger; the aspect-ratio-preserving scaler is adapted from it. Makes version 1.45.1.
* OpenDingux: Add a version information screen.Nebuleon2013-11-045-3/+32
|
* OpenDingux: Add new sections of the manual about per-game settings in ↵Nebuleon2013-11-041-8/+16
| | | | Spanish. Courtesy of hi-ban.
* OpenDingux, English and French manuals: Update with documentation on ↵Nebuleon2013-11-042-16/+32
| | | | per-game settings.
* OpenDingux: Save settings only when they are changed in a submenu.Nebuleon2013-11-044-8/+129
| | | | This will create per-game setting files only for games for which the user has made overrides. It will also reduce the number of erase cycles counted against the internal flash storage in the user's device.
* OpenDingux: Add persistent per-game settings. Dingoo A320: Fix a ↵Nebuleon2013-11-0412-52/+347
| | | | segmentation fault in the Display Settings menu, caused by the lack of a NULL sentinel entry.
* OpenDingux, od-input.c: Squash opposing directions even if they come from ↵Nebuleon2013-11-041-5/+6
| | | | mixed sources (d-pad and analog nub).
* OpenDingux: Separate the settings-saving code into settings.c and ↵Nebuleon2013-11-037-528/+516
| | | | settings.h. Shorten gui.c and put type definitions into gui.h.
* OpenDingux, gui.c: Drop the Position struct member, and instead use struts ↵Nebuleon2013-11-021-85/+103
| | | | to space menu entries apart.
* OpenDingux: Fix a crash when using Reset or Return to the game.Nebuleon2013-11-021-1/+1
|
* OpenDingux: Remove the ability for display-only lines to receive the focus.Nebuleon2013-11-021-30/+138
|
* OpenDingux, Spanish manual: Re-encode.Nebuleon2013-11-011-45/+45
| | | | The file was formerly encoded using ISO-8859-15 and is now encoded using UTF-8.
* OpenDingux, data/manual-fr.txt: Create.Nebuleon2013-11-012-0/+96
|
* OpenDingux manuals: Consistency between the Table of Contents and the ↵Nebuleon2013-11-012-8/+10
| | | | section names in the text.
* OpenDingux, English manual: Wording improvement.Nebuleon2013-11-011-1/+1
|
* OpenDingux: Add a Spanish manual contributed by hi-ban.Nebuleon2013-11-013-1/+97
| | | | The English manual is also modified to remove an ambiguity related to the use of '.' as the decimal point.
* OpenDingux, data/manual-en.txt: Create.Nebuleon2013-10-312-0/+96
|
* OpenDingux: Squash opposite directions when reading the D-pad, preferring ↵Nebuleon2013-10-271-0/+5
| | | | Down and Right to resolve conflicts.
* dev-doc: Update defines.Nebuleon2013-10-271-11/+1
|
* GCW Zero, mips/stub.S: Correct the MIPS32 R2 instructions.Nebuleon2013-10-263-5/+5
| | | | The instructions used the wrong register.
* OpenDingux: Quick fix to disable most MIPS32 R2 instructions in the stub, ↵Nebuleon2013-10-263-3/+4
| | | | | | | | but allow the SYNCI instruction. At least one code block in #ifdef MIPS_32R2/#endif is causing Doom/GBA to suddenly and permanently emit garbled grey images. An example of this bug can be seen here: <http://www.youtube.com/watch?v=cfEPcjt8cV0>. This is a correctness commit. The performance will be slightly slower with it.
* OpenDingux: Center the progress text onto the progress bar itself in the ↵Nebuleon2013-10-251-21/+18
| | | | middle of the screen. Also use TRS-80 blue for the background of the progress bar.
* DSTwo: Add a dummy errno variable. It goes unused, however.Nebuleon2013-10-251-0/+2
|
* OpenDingux: Add quick load and save state hotkeys.Nebuleon2013-10-254-4/+78
|
* memory.c, OpenDingux main.c: Correctly handle errno in load_gamepak.Nebuleon2013-10-252-5/+9
|
* memory.c: Handle errno correctly in save_state.Nebuleon2013-10-252-3/+13
|
* OpenDingux: Do not close the Saved States menu if reading a state fails.Nebuleon2013-10-251-1/+0
|
* OpenDingux: Add confirmations for overwriting and deleting saved states. Add ↵Nebuleon2013-10-253-16/+115
| | | | screens for basic initialisation errors and file access errors.
* OpenDingux: Dramatically simplify the drawing of centered and right- or ↵Nebuleon2013-10-254-166/+228
| | | | bottom-aligned text.
* OpenDingux gui.c: Prevent a cppcheck warning regarding use of an ↵Nebuleon2013-10-241-5/+2
| | | | uninitialised variable.
* OpenDingux: Make the exit code 1 when fatal errors occur during initialisation.Nebuleon2013-10-242-13/+23
|
* OpenDingux: Add a prototype Saved States menu.Nebuleon2013-10-243-30/+282
| | | | It has no confirmation when deleting a saved state, and it has absolutely no error handling anywhere.
* OpenDingux: Add a hotkey to toggle fast-forward until it's next held.Nebuleon2013-10-233-8/+32
| | | | It can work in tandem with the fast-forward while held hotkey. The rationale, as written by gamefreak_joey in <http://boards.dingoonity.org/gcw-releases/regba-gba-emulator-%28alpha-1%29/msg83617/#msg83617>, is for extended grinding sessions in RPGs such as Pokémon. The hotkey which fast-forwards while held would get tiring to keep holding.
* OpenDingux: Add a remappable mandatory Menu hotkey.Nebuleon2013-10-223-21/+82
|
* Add a rendered frames statistic to go with emulated frames.Nebuleon2013-10-226-10/+25
|
* GCW Zero: Add an option to bind the analog nub to the GBA D-pad.Nebuleon2013-10-223-17/+37
|
* GCW Zero: Add an analog sensitivity option.Nebuleon2013-10-223-21/+35
|
* DSTwo: Fix up the Makefile, broken in commit ↵Nebuleon2013-10-211-1/+1
| | | | 7332aa187b2255d8b58f469656ce454e0c8a712b.
* Clean Makefiles a little bitPaul Cercueil2013-10-214-38/+36
|
* OpenDingux: Require ONLY the Y key to be pressed in order to enter the menu.Nebuleon2013-10-201-1/+5
|
* OpenDingux: Allow the analog directions to be mapped to hotkeys and buttons.Nebuleon2013-10-203-4/+28
|
* OpenDingux: Improve fast-forwarding. Better detection of the need to ↵Nebuleon2013-10-207-53/+83
| | | | increase frame skipping when there is insufficient buffered audio, and to raise the frame rate again once a fair amount of time has passed without audio underruns. This may help the Dingoo A320.
* OpenDingux: Fix self-overlapping FPS counter caused by commit ↵Nebuleon2013-10-201-0/+1
| | | | 9d0e7a5405882c9ce982b5b0e79cb2f45612ad8f.
* OpenDingux: Implement a fast-forward hotkey and save it to the configuration ↵Nebuleon2013-10-194-18/+250
| | | | file. Also fix up button mappings if nothing is bound to a GBA key or the Menu action.
* OpenDingux: Attempt to optimise the display of borders by stopping to draw ↵Nebuleon2013-10-193-2/+28
| | | | them when it's certain that all of the back buffers of the surface have no remaining image from the menu (green) or progress screen (black).
* OpenDingux: Ignore progress for battery saving, because it flashes in-game.Nebuleon2013-10-181-0/+2
|
* OpenDingux: Implement button remapping saved to file.Nebuleon2013-10-186-395/+494
| | | | | | | | | More technically: * Custom persistence functions for mappings to save them to a file in a format that makes sense (^ v < > L R A B X Y S s, with X and Y under the SNES/Nintendo DS/Dingoo A320 mapping, S for Start and s for Select). * Merge the GCW Zero and Dingoo A320 input code, dealing with the face button placement issue (X and Y are reversed on one compared to the other) by having different descriptions #ifdef GCW_ZERO and #ifdef DINGOO_A320. * Custom functions to nullify Left/Right, to display button remapping values and to get buttons for mapping. * Display settings are now in their own submenu. * There is now a way to get raw button presses in the GUI.
* GCW Zero: Load entire ROMs into memory again. Dingoo A320: Keep ↵Nebuleon2013-10-146-6/+66
| | | | memory-mapping files due to the device not having enough memory to hold 32 MiB ROMs in private allocations.
* Switch to on-demand loading and memory-mapped files where available.Nebuleon2013-10-1415-346/+796
| | | | GCW Zero: Report decompression progress and which files are being loaded/saved during startup and shutdown.
* cpu_c.c: Delete. It goes counter to the purpose of the emulator.Nebuleon2013-10-121-3903/+0
|
* memory.c: Remove a lone #ifndef GAMEPAK_FITS_IN_RAM.Nebuleon2013-10-121-2/+0
|
* Remove duplicates and patch Pokemon Fire Red (F) in game listPaul Cercueil2013-10-071-13/+1
|
* Add Pokemon Mystery Dungeon (E) to game config listPaul Cercueil2013-10-061-1/+7
|