aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-12-31MIPS requires 2-byte reads to be aligned to even addresses. #define ↵Nebuleon Fumika
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.
2012-12-30Image modifications.Nebuleon Fumika
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.
2012-12-30'make release' is now a thing. It makes the .zip file for a release.Nebuleon Fumika
2012-12-30source.txt: Merged to ShadauxCat's repository. Update the source link.Nebuleon Fumika
2012-12-30Update list of contributors in the copyright file.Nebuleon Fumika
2012-12-30Bump to version 1.11 for another release.Nebuleon Fumika
2012-12-30Return to 22050 Hz audio. 48000 Hz was just too much to handle, apparently.Nebuleon Fumika
2012-12-30Clean up some backslashes at the end of lines.Nebuleon Fumika
2012-12-30Memory access optimisations in sprite rendering.Nebuleon Fumika
2012-12-30Rendering optimisations.Nebuleon Fumika
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.
2012-12-28Transform macros into loops to render tiles.Nebuleon Fumika
At -O3 these get unrolled; at -Os they become shorter code, fitting into the cache with other code.
2012-12-28Revert "Test commit, look for write privilege."Nebuleon Fumika
This reverts commit a3fa0c23adc3ff77e72ce27257d837cc82f7b4b0.
2012-12-28Test commit, look for write privilege.Nebuleon Fumika
2012-12-27Merge pull request #26 from Nebuleon/masterJaedyn Draper
Merge to CATSFC 1.10+
2012-12-28Keep the audio processing unit (APU) enabled even when the user disabled the ↵Nebuleon Fumika
audio for a game. This allows some games that synchronise on the APU's actions to continue working.
2012-12-27Revert "Switch to the more complete Snes9x 1.53 documentation." It doesn't ↵Nebuleon Fumika
match the version used in NDSSFC, and I failed to port to 1.53 anyway. This reverts commit 2b23b5cbaf15bccc2aae0ff3ee91cedd26f101bd.
2012-12-27Make cleanly without -DCPU_SHUTDOWN.Nebuleon Fumika
2012-12-27Accidentally committed the previous revision with sound functions emptied.Nebuleon Fumika
2012-12-27Speed up rendering by an unknown amount.Nebuleon Fumika
gfx.cpp, others: Avoid always checking for Settings.SixteenBit if FOREVER_16_BIT is defined. port.h: Define FOREVER_16_BIT below PIXEL_FORMAT.
2012-12-26Add the update methods for the upper and lower screen into defines.Nebuleon Fumika
2012-12-26Merge Registers structures into their respective CPUs to avoid additional ↵Nebuleon Fumika
memory addresses being loaded every opcode.
2012-12-26Smoother sound. Raise the sound sampling frequency to 48000 Hz.Nebuleon Fumika
2012-12-26Universally use update method 2 for the lower screen and 0 for the upper ↵Nebuleon Fumika
screen. Method 1 causes problems after about 15 minutes; despite the double-buffering, screen updates start to tear in the middle consistently.
2012-12-26Wait for keys to be released after the yes/no dialog for deleting saved ↵Nebuleon Fumika
states, instead of delaying.
2012-12-24Readme to version 1.10.Nebuleon Fumika
2012-12-24Bump version number to 1.10 for the APU half-carry bug and optimisations.Nebuleon Fumika
2012-12-24End the use of global variables for CPU emulation. This creates fewer memory ↵Nebuleon Fumika
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.
2012-12-24Bump to v. 1.09. Update the readme for cheats. Update the github link in ↵Nebuleon Fumika
source.txt.
2012-12-24Merge branch 'optimisation'Nebuleon Fumika
2012-12-24Merge branch 'cheats'Nebuleon Fumika
2012-12-24Make the GUI accept and save Snes9x's cheat file format. Improve support for ↵Nebuleon Fumika
saving the values present in ROM/RAM before a cheat is applied. Beautify the cheat selection menu, making it more tabular.
2012-12-23Correctly handle multi-part codes, for all cheat types (GG, PAR, GF).Nebuleon Fumika
They are currently loaded as multiple codes, however.
2012-12-23Screen tearing-related fix.Nebuleon Fumika
2012-12-23Various optimisations in the CPU emulation.Nebuleon Fumika
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.
2012-12-22Preliminary Snes9x-based cheat code support. Not tested, because the file ↵Nebuleon Fumika
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.)
2012-12-22Correct the font. It formerly displayed columns every 8 pixels.Nebuleon Fumika
2012-12-21Previous update made it impossible to press the Right and Down keys.Nebuleon Fumika
2012-12-21ppu.cpp: Sync fewer bits of the joypad.Nebuleon Fumika
2012-12-21Eliminate the latency of button press recognition, which was bad enough to ↵Nebuleon Fumika
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.
2012-12-21Looks like only having 'lang' crashes the options dialog. Restore the array ↵Nebuleon Fumika
of pointers.
2012-12-21Fix an off-by-one in the previous commit's touch handling code.Nebuleon Fumika
2012-12-20Simplify the GUI code.Nebuleon Fumika
* 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.
2012-12-20Bump the version number for NDSSFC.Nebuleon Fumika
* gui.c: #define NDSSFC_VERSION "1.08".
2012-12-20Somehow the C (language specifier) from a code block made it into the readme.Nebuleon Fumika
2012-12-20Use Markdown-style sections. I thought == == worked...Nebuleon Fumika
2012-12-20Fix the Engrish in the readme. Make it a Markdown file for Github.Nebuleon Fumika
2012-12-20Remove the SNES Open Bus behaviour by default. Also simplify translation again.Nebuleon Fumika
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-20Add back the -mlong-calls optimisation. It shortens the plugin's code a bit.Nebuleon Fumika
2012-12-19Review French translation. All languages: Align the two-column messages ↵Nebuleon Fumika
based on the new font.
2012-12-19Widen the space in the font a bit to better match the Pictochat font.Nebuleon Fumika