Nebuleon Fumika
e1ec72de10
Release 1.17.
2013-01-09 04:04:49 -05:00
Nebuleon Fumika
03a0d3457b
Attempt to fix the crashing with sound interrupts, part 2: Stop the timer before the menu, and restart it after it ends.
2013-01-09 03:21:44 -05:00
Nebuleon Fumika
3585aa1c2a
Increase the audio frequency to 48 kHz. Timer interrupt intervals and buffer sizes are also tested at 32 kHz and 44.1 kHz.
2013-01-09 02:32:24 -05:00
Nebuleon Fumika
8872841ad1
Try fixing a crash in the sound interrupt.
2013-01-08 23:53:31 -05:00
Nebuleon Fumika
36ad810c10
Release 1.16.
2013-01-08 15:24:21 -05:00
Nebuleon Fumika
4f9bd94497
Configurable interrupt interval for the sound timer. Right now, only 22050 Hz audio at 2000-microsecond intervals works.
2013-01-08 15:08:53 -05:00
Nebuleon Fumika
12c5afbe60
GLORIOUS interrupt-based sound playback. Now, the note-length-hopping problem isn't as apparent anymore, and automatic frame skipping doesn't go to 8 FPS all the time in Super Mario World. Thank the deities!
...
Reverses the auto frameskip synchronisation from commit dac11c74ac
, because that doesn't play well with interrupts.
2013-01-08 03:23:55 -05:00
Nebuleon Fumika
e4d3aeac2a
Release 1.15.
2013-01-07 21:15:43 -05:00
Nebuleon Fumika
7d57e5aa45
Require auto_equivalent_skip to be greater than 0 before decrementing it if the code is drawing a frame early in automatic frame skip mode. Otherwise, overflow occurs, and we skip 4 billion images.
2013-01-07 20:46:10 -05:00
Nebuleon Fumika
377c6bcadb
Revert "Add a bit that tolerates 1/16 latency per frame in automatic frameskip mode."
...
This reverts commit d9b6322caa
.
2013-01-07 19:41:29 -05:00
Nebuleon Fumika
42c8a90d38
Add a bit that tolerates 1/16 latency per frame in automatic frameskip mode.
...
Remove old automatic frameskip code.
2013-01-07 16:21:32 -05:00
Nebuleon Fumika
dac11c74ac
Smooth out the automatic frame skipping such that it doesn't go from 1 FPS to 8 FPS right away and constantly. The equivalent frame skip will be 2, 3, 5 or 8 most of the time, depending on the game, and will vary a bit depending on rendering demands.
...
For example, the frame skipping in Super Mario World is 3 on the map and in graphically simple levels, and 5 in complex levels.
2013-01-07 04:38:35 -05:00
Nebuleon Fumika
8447b6304c
Fix an off-by-one in the manual frameskip code. It would raise the sound speed by 25% if frame skip 3 (Show 1 in 4) rendered a frame early.
...
Optimise the controller code. I don't expect to allow remapping any time soon, because the DS has buttons for every single SNES controller button and nothing more.
2013-01-07 03:28:22 -05:00
Nebuleon Fumika
c01c25febe
Add support for user-selected and automatic frame skipping. Add support for PAL timings (20 ms per frame).
...
User-selected frameskip causes slowdowns if the game runs slower than the resulting frame rate, but synchronises correctly if the game runs faster.
Automatic frame skipping is still the default. It now only skips up to 8 frames, but in some games still skips that entire 8 frames. What's needed is an algorithm that averages frame latencies over a few seconds and skips while the latency is LOWER than the average.
2013-01-07 02:16:34 -05:00
Nebuleon Fumika
6c5bd75716
Language file overhaul, part 2. Remove unused messages in all languages.
...
It's actually reloading icons that takes so much time.
2013-01-06 03:45:11 -05:00
Nebuleon Fumika
81cf5b3cd1
Language message overhaul, part 1.
...
Clean up the names of messages. Mark those that are unused as such in code comments. Raise the CPU level while loading a message file, because it really does take half a second to load a 16 KB file on the lowest frequency (what the eff?).
2013-01-06 01:07:42 -05:00
Nebuleon Fumika
6afa4a432b
Release 1.14.
2013-01-05 20:22:25 -05:00
Nebuleon Fumika
1c48900fda
Sync ALL bits of the joypad again. This may make controls a bit slower to parse, but is required by Super Mario All-Stars at least.
2013-01-05 04:01:01 -05:00
Nebuleon Fumika
7c2a30c5b5
Sleep when the lid is closed AND emulation is running. I don't know to what extent this will save on battery usage, though I do set the DSTWO's CPU to the lowest frequency while it sleeps.
2013-01-02 03:20:47 -05:00
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
73f8077a2a
Release 1.12.
2012-12-31 23:52:52 -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
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
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
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
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
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
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
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
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
Nebuleon Fumika
8085880130
Remove the SNES Open Bus behaviour by default. Also simplify translation again.
...
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-20 18:14:24 -05:00
Nebuleon Fumika
100c3bd9e9
Make it easier to add new translations to the menu.
...
* source/nds/gui.c: Calculate the number of options based on the array size of language_otions.
2012-12-19 18:49:13 -05:00
Nebuleon Fumika
973cd8d5e3
EN: Link the French translation to the interface. FR: Ajout de la traduction 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.
2012-12-19 18:38:04 -05:00
Nebuleon Fumika
eee0a7ecda
Change the English labels so they're more descriptive.
...
Really set the default CPU frequency to the highest.
2012-12-19 03:10:55 -05:00
Nebuleon Fumika
dd06ba36ff
Default to Graphics Mode 3, which displays the correct SNES aspect ratio at the cost of some lines at the top and bottom.
2012-12-19 01:37:10 -05:00
Nebuleon Fumika
65b56543ab
Raise the CPU's clock speed to 396 MHz while loading ROMs.
...
Also raise the CPU's clock speed to 396 MHz by default, instead of 360 MHz, when emulating a ROM.
2012-12-19 01:30:30 -05:00