Commit Graph

59 Commits

Author SHA1 Message Date
twinaphex
9929bc0bd8 LOAD_FROM_MEMORY_TEST - enable it for every target but PSP 2014-12-20 07:59:41 +01:00
twinaphex
6b8c7d2376 Use MSB_FIRST instead of LSB_FIRST 2014-12-15 00:59:52 +01:00
twinaphex
6017ba80d4 Implement cheat code stuff 2014-12-06 21:55:19 +01:00
aliaspider
238cf4a72f (windows) build fix 2014-11-26 22:17:53 +01:00
aliaspider
7077e98215 can build with USE_BLARGG_APU enabled, still not working. 2014-11-03 11:11:05 +01:00
aliaspider
3564bfe813 start hooking up blargg's apu implementation to use as a reference.
(not yet working)
2014-11-02 11:44:50 +01:00
aliaspider
746885772d tweak build 2014-11-02 11:04:37 +01:00
aliaspider
d2c9eb147d small cleanup 2014-11-02 07:00:31 +01:00
aliaspider
188fe860e0 implement rom loading from memory. 2014-11-02 06:31:17 +01:00
aliaspider
67bb9d8467 add missing optimization $(DEFS) to FLAGS 2014-11-01 12:48:42 +01:00
twinaphex
889f89ec26 Add Android JNI Makefiles and Makefile.common 2014-11-01 08:25:16 +01:00
twinaphex
bbac1324c6 (Griffin) Add Griffin option, enable by default 2014-11-01 06:07:01 +01:00
aliaspider
532f3cf63f add a perf counter. 2014-10-31 07:47:19 +01:00
aliaspider
21ddea4dfa remove snapshot.c snaporig.c dependencies. 2014-10-30 06:43:08 +01:00
aliaspider
20e913fd69 (PSP) fix build 2014-10-30 03:55:09 +01:00
aliaspider
a3b65d60b0 remove some unused functions/files 2014-10-30 03:10:39 +01:00
twinaphex
8a50d176b7 New Makefile 2014-10-30 02:03:23 +01:00
aliaspider
44476d7bda remove more C++ code. 2014-10-29 09:21:38 +01:00
aliaspider
a6dc7abc9b start moving everything to C 2014-10-29 05:36:07 +01:00
aliaspider
1d98e1c317 cleanups (cont.) 2014-10-29 05:28:04 +01:00
aliaspider
f518934e3b cleanups (cont.) 2014-10-28 22:45:14 +01:00
aliaspider
a9c9cc3e30 del some more 2014-10-28 08:51:20 +01:00
aliaspider
7c00d00bce remove more stuff 2014-10-28 08:42:58 +01:00
aliaspider
5a96997f18 initial libretro port. 2014-10-28 03:13:05 +01:00
Nebuleon Fumika
6794af6695 Reimplement grouped multipart cheat codes on top of Snes9x's cheat data. 2013-02-12 00:06:39 -05:00
Nebuleon Fumika
d1a7bf5eb5 Fully integrate BassAceGold's libraries, finally. The README still states 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.
2013-02-04 23:45:44 -05:00
Nebuleon Fumika
1c9094d99f Release 1.28 after disabling the controller status sync hack. 2013-02-04 05:57:53 -05:00
Nebuleon Fumika
b3a7f8f1fc Synchronise the controller status more spread out inside a rendered frame:
* 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.
2013-02-03 19:26:34 -05:00
Nebuleon Fumika
461f240655 Fix a name clash between Snes9x's dma.h and the DS2 dma.h by renaming the DS2 dma.h to ds2_dma.h.
Add preliminary support for drawing emulated screens with DS2 DMA.
2013-02-03 05:59:48 -05:00
Nebuleon Fumika
88135c52f8 Remove unneeded volatility, enabling more optimisations. Sound volatility is #define'd away, GUI volatility is simply removed. 2013-01-19 20:28:17 -05:00
Nebuleon Fumika
0d5be16895 Revert "Reinstate timer-interrupt audio."
This reverts commit 944d9a7294.

Conflicts:

	source/nds/entry.cpp
2013-01-18 03:33:14 -05:00
Nebuleon Fumika
944d9a7294 Reinstate timer-interrupt audio.
This reverts commit 0d048d05ee.
2013-01-17 18:52:22 -05:00
Nebuleon Fumika
eb40d91070 Delete server.cpp and netplay.cpp. 2013-01-13 14:17:20 -05:00
Nebuleon Fumika
0d048d05ee Revert timer-interrupt audio, but not optimisations done since then. Get the controller status every scanline again. 2013-01-13 05:00:47 -05:00
Nebuleon Fumika
7eb79c076d Peel loops, aka only unroll loops if their number of iterations is a compile-time constant. 2013-01-12 03:48:20 -05:00
Nebuleon Fumika
75690d5e91 Loop unrolling sucks. It was adding loads of instructions per audio sample. 2013-01-12 03:15:28 -05:00
Nebuleon Fumika
40d30e35ca Remove redundant writes to support reverse stereo. Define FOREVER_FORWARD_STEREO. 2013-01-12 01:09:59 -05:00
Nebuleon Fumika
7896e83aa9 Stop constantly testing for 16-bit and stereo in sound handlers. Define FOREVER_16_BIT_SOUND and FOREVER_STEREO and use them throughout the code.
This is essentially commit 6b36e79013, but for sound instead of graphics.
2013-01-11 19:22:59 -05:00
Nebuleon Fumika
65f1ead0e7 Revert "Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps." That's in port.h now.
This reverts commit 3dd99ccae4.
2013-01-08 16:24:57 -05:00
Nebuleon Fumika
3dd99ccae4 Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps. 2013-01-08 16:01:22 -05:00
Nebuleon Fumika
cdd85a7ce6 Reinstate SNES Open Bus. It was making Secret of Mana's introduction screen sound like a NES with a rusty audio controller. 2013-01-08 15:55:55 -05:00
Nebuleon Fumika
e070871850 Remove Open Bus again. Stop synchronising controls so often, now that the audio variable latency problem is fixed. 2013-01-08 15:10:13 -05:00
Nebuleon Fumika
378f5a0e3f Release 1.13. 2013-01-02 01:43:11 -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
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
e036c88be6 Merge branch 'optimisation' 2012-12-24 01:25:23 -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
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