Commit graph

182 commits

Author SHA1 Message Date
Nebuleon Fumika
378f5a0e3f Release 1.13. 2013-01-02 01:43:11 -05:00
Nebuleon Fumika
ac4de708b5 Make Display Mode 4 an antialiased whole-screen mode.
* source/nds/displaymodes.cpp: Rewritten, assigned copyright to myself (GPLv2).
* CATSFC/system/language.msg: Changed the English and French text for display modes.
2013-01-02 01:18:18 -05:00
Nebuleon Fumika
c43b58481f Remove unused files. This reduces the plugin's size by 214 KB.
unicode.c, unicode.h, charsets.c, charsets.h: UTF-8 is universally used in CATSFC. Drop unused support for GBK/SJIS encodings.
2013-01-01 21:31:25 -05:00
Nebuleon Fumika
3cd20e203f Render double-width-res tiles from Background Mode 5 as half-width tiles. 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...
2013-01-01 03:53:45 -05:00
Nebuleon Fumika
73f8077a2a Release 1.12. 2012-12-31 23:52:52 -05:00
Nebuleon Fumika
2572e07369 ppu.cpp: Store multiplicands and quotients using aligned 16-bit writes (little-endian). Fold more identical case statements in the huge switch. 2012-12-31 19:38:36 -05:00
Nebuleon Fumika
4846dfa867 Fix PPU resets. This fixes Legend of Zelda: A Link to the Past. 2012-12-31 19:09:18 -05:00
Nebuleon Fumika
c5d385d664 MIPS requires 2-byte reads to be aligned to even addresses. #define 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-31 13:46:47 -05:00
Nebuleon Fumika
22fa90a3b3 Image modifications.
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 17:00:24 -05:00
Nebuleon Fumika
2c5b72137b 'make release' is now a thing. It makes the .zip file for a release. 2012-12-30 16:32:30 -05:00
Nebuleon Fumika
22dbf08665 source.txt: Merged to ShadauxCat's repository. Update the source link. 2012-12-30 16:22:43 -05:00
Nebuleon Fumika
cd108dbd18 Update list of contributors in the copyright file. 2012-12-30 16:21:10 -05:00
Nebuleon Fumika
2587113139 Bump to version 1.11 for another release. 2012-12-30 16:12:51 -05:00
Nebuleon Fumika
1bdf314192 Return to 22050 Hz audio. 48000 Hz was just too much to handle, apparently. 2012-12-30 15:56:36 -05:00
Nebuleon Fumika
8956d5cff2 Clean up some backslashes at the end of lines. 2012-12-30 15:30:14 -05:00
Nebuleon Fumika
b7867f01cc Memory access optimisations in sprite rendering. 2012-12-30 14:34:12 -05:00
Nebuleon Fumika
d1d0c81af8 Rendering optimisations.
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-30 00:20:45 -05:00
Nebuleon Fumika
e5a0c9146a Transform macros into loops to render tiles.
At -O3 these get unrolled; at -Os they become shorter code, fitting into the cache with other code.
2012-12-28 22:19:23 -05:00
Nebuleon Fumika
097d5f2e75 Revert "Test commit, look for write privilege."
This reverts commit a3fa0c23ad.
2012-12-28 02:30:51 -05:00
Nebuleon Fumika
a3fa0c23ad Test commit, look for write privilege. 2012-12-28 02:29:48 -05:00
Jaedyn Draper
3fff289e60 Merge pull request #26 from Nebuleon/master
Merge to CATSFC 1.10+
2012-12-27 23:19:47 -08:00
Nebuleon Fumika
c01a2a4216 Keep the audio processing unit (APU) enabled even when the user disabled the audio for a game. This allows some games that synchronise on the APU's actions to continue working. 2012-12-28 01:45:40 -05:00
Nebuleon Fumika
09b5fdb861 Revert "Switch to the more complete Snes9x 1.53 documentation." It doesn't match the version used in NDSSFC, and I failed to port to 1.53 anyway.
This reverts commit 2b23b5cbaf.
2012-12-27 18:51:20 -05:00
Nebuleon Fumika
c8935c352c Make cleanly without -DCPU_SHUTDOWN. 2012-12-27 18:46:37 -05:00
Nebuleon Fumika
963c3459e5 Accidentally committed the previous revision with sound functions emptied. 2012-12-27 18:10:31 -05:00
Nebuleon Fumika
6b36e79013 Speed up rendering by an unknown amount.
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-27 18:02:03 -05:00
Nebuleon Fumika
0f60f047f5 Add the update methods for the upper and lower screen into defines. 2012-12-26 15:40:35 -05:00
Nebuleon Fumika
e5869adc44 Merge Registers structures into their respective CPUs to avoid additional memory addresses being loaded every opcode. 2012-12-26 14:42:02 -05:00
Nebuleon Fumika
139c793b58 Smoother sound. Raise the sound sampling frequency to 48000 Hz. 2012-12-26 11:29:51 -05:00
Nebuleon Fumika
9c1742f6cb Universally use update method 2 for the lower screen and 0 for the upper screen. Method 1 causes problems after about 15 minutes; despite the double-buffering, screen updates start to tear in the middle consistently. 2012-12-26 11:29:47 -05:00
Nebuleon Fumika
7f0e1fee81 Wait for keys to be released after the yes/no dialog for deleting saved states, instead of delaying. 2012-12-26 11:29:41 -05:00
Nebuleon Fumika
328b5bd6c1 Readme to version 1.10. 2012-12-24 15:44:44 -05:00
Nebuleon Fumika
1fd0171c5f Bump version number to 1.10 for the APU half-carry bug and optimisations. 2012-12-24 04:01:50 -05:00
Nebuleon Fumika
f29c76dc58 End the use of global variables for CPU emulation. This creates fewer memory 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-24 03:53:20 -05:00
Nebuleon Fumika
e7ce8dd66c Bump to v. 1.09. Update the readme for cheats. Update the github link in source.txt. 2012-12-24 02:15:42 -05:00
Nebuleon Fumika
e036c88be6 Merge branch 'optimisation' 2012-12-24 01:25:23 -05:00
Nebuleon Fumika
b90664ac44 Merge branch 'cheats' 2012-12-24 01:25:08 -05:00
Nebuleon Fumika
f843d68bb6 Make the GUI accept and save Snes9x's cheat file format. Improve support for saving the values present in ROM/RAM before a cheat is applied.
Beautify the cheat selection menu, making it more tabular.
2012-12-24 01:15:41 -05:00
Nebuleon Fumika
bb39cc8236 Correctly handle multi-part codes, for all cheat types (GG, PAR, GF).
They are currently loaded as multiple codes, however.
2012-12-23 20:51:14 -05:00
Nebuleon Fumika
7a6ffe8a1e Screen tearing-related fix. 2012-12-23 18:03:54 -05:00
Nebuleon Fumika
d1fe64aef0 Various optimisations in the CPU emulation.
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-23 16:13:54 -05:00
Nebuleon Fumika
a194b85003 Preliminary Snes9x-based cheat code support. Not tested, because the file 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-22 22:16:55 -05:00
Nebuleon Fumika
7701191d82 Correct the font. It formerly displayed columns every 8 pixels. 2012-12-22 15:40:43 -05:00
Nebuleon Fumika
e7f7d0282a Previous update made it impossible to press the Right and Down keys. 2012-12-21 14:56:23 -05:00
Nebuleon Fumika
371058df32 ppu.cpp: Sync fewer bits of the joypad. 2012-12-21 11:57:45 -05:00
Nebuleon Fumika
a0d0c5e7a5 Eliminate the latency of button press recognition, which was bad enough to 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-21 03:50:10 -05:00
Nebuleon Fumika
3972512b2a Looks like only having 'lang' crashes the options dialog. Restore the array of pointers. 2012-12-21 01:44:57 -05:00
Nebuleon Fumika
5585c035fb Fix an off-by-one in the previous commit's touch handling code. 2012-12-21 00:05:07 -05:00
Nebuleon Fumika
712c249e8c Simplify the GUI code.
* 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-20 23:52:09 -05:00
Nebuleon Fumika
8a4343ff8e Bump the version number for NDSSFC.
* gui.c: #define NDSSFC_VERSION "1.08".
2012-12-20 19:34:51 -05:00