Age | Commit message (Collapse) | Author |
|
|
|
full, it's already game over, and getAudiobuff becomes NULL for about 400 milliseconds, stopping all emulation.
|
|
to avoid buffer overruns. Buffer overruns pause the game for about half a second.
|
|
on-the-fly is just not stable on the DSTwo.
|
|
and this revert brings the code a bit closer to mainline Snes9x.
|
|
the Loading screen to disappear, and allows invoking New Game straight away.
|
|
|
|
maps load faster.
|
|
unused but constantly re-zeroed.
Frees up 320 KiB for other uses, and saves ~4 milliseconds at emulator startup, when resetting the APU and when loading a new game.
|
|
Touch Screen is pressed.
This avoids bringing up, or exiting from, multiple menus if you happen to press something for longer than 1/5 second.
The modification does not apply to the directional pad in all menus, or the L and R buttons in file selectors.
|
|
|
|
double-buffering. Disable that, again.
|
|
as it only takes a few milliseconds.
|
|
Use sound interpolation to make it sound even more like the SNES.
|
|
|
|
storage cards! Instead, save them once when the menu that contains the settings that the user changed is exited, IF the settings' values changed, OR once when updating the list of most-recently played games.
Automatically save the SRAM in most cases, including game changes.
This commit also makes it unnecessary to save the game config of the previous game when loading another, makes it load certain settings correctly, and MAY make it avoid creating a file for a game's settings if the user never changes them from the defaults.
|
|
equivalent skip level) for automatic frame skipping. Remove the automatic CPU frequency option, which was making audio emit 0.25 second of silence every so often.
|
|
|
|
splash screen.
Fix uninitialised memory access in Check_LoadArg.
|
|
screen, current gamepak variables, game config stuff and so on are all consistent.
|
|
|
|
directory become the one transferred via arguments in that case.
|
|
|
|
playing games that don't use all of the MIPS CPU. If all of it is indeed needed, then the game will constantly play at 396 MHz.
|
|
the default value for all games which previously had this value configured.
|
|
invokes a recursive directory scan to calculate how much space is used first.
|
|
audio buffer be free (1 out of 4).
|
|
that 1.2 is required to overwrite 0.13's stuff; really, 0.13 is needed only for `gcc`. So the sequence goes 0.13's `gcc` -> 1.2 -> BassAceGold's libraries -> make `libds2a.a`.
DMA function names changed to match BassAceGold's.
|
|
Update source/dsp1.cpp
|
|
|
|
static const uint16 DSP1ROM[1024]
snes9x 1.53 updated the dummy loops
|
|
|
|
* before rendering a background;
* before rendering sprites;
* while rendering more than 128 samples of audio at once ("Prefer fluid video");
* after every 16 scanlines of CPU execution instead of every 1;
* while waiting for an audio buffer to become available;
* while killing time between frames with fast-forward disabled.
Controller presses and releases are now combined in a DS button bitfield using a shorter 32-bit algorithm. See entry.cpp:NDSSFCAccumulateJoypad and #define ACCUMULATE_JOYPAD in the source.
This is still not suitable for playing platformers frame-perfectly, but it's much better than half a second of latency to press or release a button, and one still needs to press buttons a bit more than just light taps. I'd say 50 milliseconds is the latency now. Platformers requiring more precision can be played with frameskip 0.
DMA does not require double-buffered displaying, so synchronise the controller more often by disabling double-buffered displaying again.
|
|
|
|
|
|
|
|
otherwise the next screen can go into DMA.
Use channel 1 instead of channel 5, which must be busy for some reason.
|
|
DS2 dma.h to ds2_dma.h.
Add preliminary support for drawing emulated screens with DS2 DMA.
|
|
experimental branch cherry-pick.
|
|
switch to the user's chosen frequency for the game.
Conflicts:
source/nds/ds2_main.c
source/nds/entry.cpp
source/nds/gui.c
|
|
loading in Super Mario World.
|
|
|
|
crackle constantly, like a record player. Most audible with earphones.
|
|
|
|
video or audio.
This makes most games playable, but the player can choose to get fluid audio instead of fluid video in sound-test modes or games with epic soundtracks.
|
|
mainline Snes9x, in case of merges from 1.53. It also didn't help much, given that the problem was trying to push 92 milliseconds of audio inside 20 milliseconds of time.
This reverts commit 2b715684087675747df7cb8995695936f20c782b.
|
|
Also correctly fill the buffer with silence when returning from pause. This reduces or eliminates crackling.
The emulator kills time in two circumstances:
* In automatic frameskip mode, without fast forwarding, the emulator kills time if it rendered a frame early.
* In manual frameskip mode, without fast forwarding, the emulator kills time to wait for the next rendered frame.
|
|
* Fake out the buffer timing by sending a buffer full of silence when returning from pause. Reduces crackling introduced by the next point.
* Send buffers only once every 23.22 milliseconds, not up to four buffers at once (92.88 milliseconds) and randomly thereafter. Reduces note-length jumpiness.
* Audio may have trouble catching up if external jitter reaches 11.61 milliseconds. That happens if Mode 7 images or filtered modes take a long time to render, or if chips take a long time to execute.
|
|
|
|
into it anyway. According to BassAceGold's timings, this should save 179 milliseconds.
|