Age | Commit message (Collapse) | Author |
|
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.
|
|
milliseconds and set both backlights to on.
|
|
destination memory buffers, but is slower than memcpy in many implementations. When memory buffers don't overlap, memcpy may be more efficient.
The DS2 SDK is such an implementation, so change many memmoves into memcpys.
|
|
file is not in the correct format.
|
|
|
|
commit, the emulator could sometimes give a file out of its order, for example an O* file between two S* files.
|
|
|
|
emulation.
|
|
|
|
|
|
|
|
|
|
each playback sample, add into the mix buffer", the playback sample is instead written to the mix buffer only when fully mixed from the 8 SNES sound channels.
Verified working with Secret of Mana, Super Bomberman 5 and Super Mario World.
|
|
saves a few million instructions per second. (Inspired by Snes9x-Euphoria)
|
|
|
|
|
|
|
|
These hotkeys can be overridden per game so that the global version of the hotkey can be ignored.
* Language file fixups related to \n (newlines).
* Pictochat fixups: shorten START and SELECT to ST and SEL. Should still be recognisable.
|
|
"disappearing" in the recently played games menu.
|
|
|
|
|
|
|
|
|
|
possible as of commit 4b4349ac8afb7dce6c0ca8a64a268f897a295469.
|
|
deep purple instead of a light teal.
|
|
|
|
Saved state menu improvements.
|
|
state row.
|
|
|
|
|
|
* Don't select items defined with type HIDEN_TYPE. That's for items like the card capacity display.
* Don't change current_option and current_option_num until we're sure of what's going on.
* Don't select an item from another menu if you touch a phantom menu item below the last one of the active menu. For example, Video & audio's item 5 would call up the ROM loading dialog. This is now fixed.
* Handle NUMBER_SELECTION_TYPE and STRING_SELECTION_TYPE as invocations of CURSOR_RIGHT. This fixes the language selector not updating the language in the GUI when touched.
* Handle ACTION_TYPE. This fixes the Load cheat file menu item not working when touched.
|
|
#define'd away, GUI volatility is simply removed.
|