| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Makes the file selector able to handle large file counts without
slowing down massively.
|
|
|
|
|
|
|
|
|
| |
* 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).
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The return value of gpsp_main is also forwarded.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The DSTwo port implements this to move those variables into the
.noinit section.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
after writing code in the MIPS32R2 documentation.
|
|
|
|
| |
flick (GCW Zero).
|
| |
|
| |
|
|
|
|
| |
mode border.
|
| |
|
| |
|
|
|
|
| |
processing.
|
|
|
|
| |
fast" in the GUI.
|
|
|
|
| |
courtesy of kuwanger; the aspect-ratio-preserving scaler is adapted from it. Makes version 1.45.1.
|
| |
|
|
|
|
| |
Spanish. Courtesy of hi-ban.
|
|
|
|
| |
per-game settings.
|
|
|
|
| |
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.
|
|
|
|
| |
segmentation fault in the Display Settings menu, caused by the lack of a NULL sentinel entry.
|
|
|
|
| |
mixed sources (d-pad and analog nub).
|
|
|
|
| |
settings.h. Shorten gui.c and put type definitions into gui.h.
|
|
|
|
| |
to space menu entries apart.
|
| |
|
| |
|
|
|
|
| |
The file was formerly encoded using ISO-8859-15 and is now encoded using UTF-8.
|
| |
|
|
|
|
| |
section names in the text.
|
| |
|
|
|
|
| |
The English manual is also modified to remove an ambiguity related to the use of '.' as the decimal point.
|
| |
|
|
|
|
| |
Down and Right to resolve conflicts.
|
| |
|
|
|
|
| |
The instructions used the wrong register.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
middle of the screen. Also use TRS-80 blue for the background of the progress bar.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
screens for basic initialisation errors and file access errors.
|
|
|
|
| |
bottom-aligned text.
|
|
|
|
| |
uninitialised variable.
|
| |
|
|
|
|
| |
It has no confirmation when deleting a saved state, and it has absolutely no error handling anywhere.
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
7332aa187b2255d8b58f469656ce454e0c8a712b.
|
| |
|
| |
|
| |
|
|
|
|
| |
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.
|
|
|
|
| |
9d0e7a5405882c9ce982b5b0e79cb2f45612ad8f.
|
|
|
|
| |
file. Also fix up button mappings if nothing is bound to a GBA key or the Menu action.
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
memory-mapping files due to the device not having enough memory to hold 32 MiB ROMs in private allocations.
|
|
|
|
| |
GCW Zero: Report decompression progress and which files are being loaded/saved during startup and shutdown.
|
| |
|
| |
|
| |
|
| |
|