Age | Commit message (Collapse) | Author |
|
unicode.c, unicode.h, charsets.c, charsets.h: UTF-8 is universally used in CATSFC. Drop unused support for GBK/SJIS encodings.
|
|
This makes the menu text in Secret of Mana readable.
Sprites in Background Mode 5 are still messed up. At least they're at the right X coordinate, roughly...
|
|
|
|
(little-endian). Fold more identical case statements in the huge switch.
|
|
|
|
FAST_ALIGNED_LSB_WORD_ACCESS and use it to read absolute 24-bit addresses as either 1 byte & 1 halfword, or 1 halfword & 1 byte.
|
|
CATSFC/system/gui/boot.bmp: Remove the Engrish, although it was funny ("Enjoy yourself! All pleasure in it"). Replace it with a controller and the text "Loading...".
catsfc.bmp: Remove the CAT and replace it with a controller. In the .ini, it's already written as CATSFC anyway.
copyright: Update with image attribution per CC-BY-NC-ND 3.0.
source/images: Create, with .psd files for the two modified .bmp files.
|
|
|
|
|
|
|
|
|
|
tile.cpp: Optimise the common case of drawing an unclipped but possibly flipped 8x8 tile. Instead of calling WRITE_4PIXELS16 16 times, each performing setup and teardown, move the loop into DrawTile16.
tile.h, tile.cpp, gfx.h, gfx.cpp: End the use of global variable GFX.ScreenColors to pass around the current frame's palette. This saves on memory stores/loads.
|
|
At -O3 these get unrolled; at -Os they become shorter code, fitting into the cache with other code.
|
|
audio for a game. This allows some games that synchronise on the APU's actions to continue working.
|
|
match the version used in NDSSFC, and I failed to port to 1.53 anyway.
This reverts commit 2b23b5cbaf15bccc2aae0ff3ee91cedd26f101bd.
|
|
|
|
|
|
gfx.cpp, others: Avoid always checking for Settings.SixteenBit if FOREVER_16_BIT is defined.
port.h: Define FOREVER_16_BIT below PIXEL_FORMAT.
|
|
|
|
memory addresses being loaded every opcode.
|
|
|
|
screen. Method 1 causes problems after about 15 minutes; despite the double-buffering, screen updates start to tear in the middle consistently.
|
|
states, instead of delaying.
|
|
|
|
store instructions in many SNES, SA1 and APU opcodes.
Fix the APU half-carry bug, which may be audible.
globals.cpp: Get rid of A1, A2, A3, A4, W1, W2, W3, W4, Int8, Int16, Int32, Work8, Work16, Work32, Ans8, Ans16, Ans32.
|
|
source.txt.
|
|
|
|
|
|
saving the values present in ROM/RAM before a cheat is applied.
Beautify the cheat selection menu, making it more tabular.
|
|
They are currently loaded as multiple codes, however.
|
|
|
|
Run the opcode as a tail call from the address calculation. This cuts on the needed return instructions.
Pass the opcode address as a parameter; this keeps it in a register most of the time and avoids memory stores.
|
|
selection interface freezes when it gets to the folder containing Mightymo's cheat files, whereas it did not do this before with the converted Mightymo cheats. (335 files -> 679, though.)
|
|
|
|
|
|
lose keys entirely sometimes, and could otherwise delay a button press or release by 200 ms.
This was the entire reason I created the fork, and I finally did it! It syncs the controls every scanline of a frame, which costs about 60,000 MIPS instructions per frame to deal with. Luckily, the processor runs at 396 MHz, which means the cost of checking the controls is 1% of the CPU's power.
|
|
of pointers.
|
|
|
|
* gui.c: Simplify row and column checks when handling touch events.
* draw.c, err_msg: Use ConsoleInit instead of a custom drawstring function when an initialisation error that is NOT related to DS2 I/O occurs. This allows \r\n to work.
* gui.c, initialisation: Remove the Engrish in the "initial <subsystem name> error" messages. Make them appear in English and French. Unfortunately, the console doesn't support Chinese characters, and I don't know Chinese.
|
|
* gui.c: #define NDSSFC_VERSION "1.08".
|
|
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.
|
|
|
|
* source/nds/gui.c: Calculate the number of options based on the array size of language_otions.
|
|
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.
|
|
Really set the default CPU frequency to the highest.
|
|
the cost of some lines at the top and bottom.
|
|
Also raise the CPU's clock speed to 396 MHz by default, instead of 360 MHz, when emulating a ROM.
|
|
emulator.
|
|
With the MIPS instruction cache, this means that two consecutive SNES CPU instructions using e.g. the same addressing style or the same opcode have a chance that the second one will use the first one's code and that it will be cached.
|
|
In addition to having less sound skipping going on, certain platformer games (I'm looking at you, Super Mario World) are helped by having more synchronised controls. In other words, synchronising the audio also synchronises the controls a bit more.
|