Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
* 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.
|
|
DS2 dma.h to ds2_dma.h.
Add preliminary support for drawing emulated screens with DS2 DMA.
|
|
#define'd away, GUI volatility is simply removed.
|
|
This reverts commit 944d9a729455de435c3d200752308ceedf250196.
Conflicts:
source/nds/entry.cpp
|
|
This reverts commit 0d048d05ee50625f15d5235d362df6ee71903fc5.
|
|
|
|
controller status every scanline again.
|
|
compile-time constant.
|
|
|
|
FOREVER_FORWARD_STEREO.
|
|
FOREVER_16_BIT_SOUND and FOREVER_STEREO and use them throughout the code.
This is essentially commit 6b36e79013d4c9273a96a9783a2bccdb516f174a, but for sound instead of graphics.
|
|
port.h now.
This reverts commit 3dd99ccae465c370613ded10794749d6253bfe8c.
|
|
|
|
sound like a NES with a rusty audio controller.
|
|
audio variable latency problem is fixed.
|
|
|
|
unicode.c, unicode.h, charsets.c, charsets.h: UTF-8 is universally used in CATSFC. Drop unused support for GBK/SJIS encodings.
|
|
|
|
|
|
|
|
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.
|
|
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.)
|
|
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.
|
|
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.
|
|
|
|
Also raise the CPU's clock speed to 396 MHz by default, instead of 360 MHz, when emulating a ROM.
|
|
emulator.
|
|
With the MIPS instruction cache, this means that two consecutive SNES CPU instructions using e.g. the same addressing style or the same opcode have a chance that the second one will use the first one's code and that it will be cached.
|
|
|
|
|
|
make -jN.
|
|
|