aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2013-02-12Reimplement grouped multipart cheat codes on top of Snes9x's cheat data.Nebuleon Fumika
2013-02-04Fully integrate BassAceGold's libraries, finally. The README still states ↵Nebuleon Fumika
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-04Release 1.28 after disabling the controller status sync hack.Nebuleon Fumika
2013-02-03Synchronise the controller status more spread out inside a rendered frame:Nebuleon Fumika
* 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-03Fix a name clash between Snes9x's dma.h and the DS2 dma.h by renaming the ↵Nebuleon Fumika
DS2 dma.h to ds2_dma.h. Add preliminary support for drawing emulated screens with DS2 DMA.
2013-01-19Remove unneeded volatility, enabling more optimisations. Sound volatility is ↵Nebuleon Fumika
#define'd away, GUI volatility is simply removed.
2013-01-18Revert "Reinstate timer-interrupt audio."Nebuleon Fumika
This reverts commit 944d9a729455de435c3d200752308ceedf250196. Conflicts: source/nds/entry.cpp
2013-01-17Reinstate timer-interrupt audio.Nebuleon Fumika
This reverts commit 0d048d05ee50625f15d5235d362df6ee71903fc5.
2013-01-13Delete server.cpp and netplay.cpp.Nebuleon Fumika
2013-01-13Revert timer-interrupt audio, but not optimisations done since then. Get the ↵Nebuleon Fumika
controller status every scanline again.
2013-01-12Peel loops, aka only unroll loops if their number of iterations is a ↵Nebuleon Fumika
compile-time constant.
2013-01-12Loop unrolling sucks. It was adding loads of instructions per audio sample.Nebuleon Fumika
2013-01-12Remove redundant writes to support reverse stereo. Define ↵Nebuleon Fumika
FOREVER_FORWARD_STEREO.
2013-01-11Stop constantly testing for 16-bit and stereo in sound handlers. Define ↵Nebuleon Fumika
FOREVER_16_BIT_SOUND and FOREVER_STEREO and use them throughout the code. This is essentially commit 6b36e79013d4c9273a96a9783a2bccdb516f174a, but for sound instead of graphics.
2013-01-08Revert "Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps." That's in ↵Nebuleon Fumika
port.h now. This reverts commit 3dd99ccae465c370613ded10794749d6253bfe8c.
2013-01-08Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps.Nebuleon Fumika
2013-01-08Reinstate SNES Open Bus. It was making Secret of Mana's introduction screen ↵Nebuleon Fumika
sound like a NES with a rusty audio controller.
2013-01-08Remove Open Bus again. Stop synchronising controls so often, now that the ↵Nebuleon Fumika
audio variable latency problem is fixed.
2013-01-02Release 1.13.Nebuleon Fumika
2013-01-01Remove unused files. This reduces the plugin's size by 214 KB.Nebuleon Fumika
unicode.c, unicode.h, charsets.c, charsets.h: UTF-8 is universally used in CATSFC. Drop unused support for GBK/SJIS encodings.
2012-12-31Release 1.12.Nebuleon Fumika
2012-12-30'make release' is now a thing. It makes the .zip file for a release.Nebuleon Fumika
2012-12-24Merge branch 'optimisation'Nebuleon Fumika
2012-12-23Various optimisations in the CPU emulation.Nebuleon Fumika
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-22Preliminary Snes9x-based cheat code support. Not tested, because the file ↵Nebuleon Fumika
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-21Eliminate the latency of button press recognition, which was bad enough to ↵Nebuleon Fumika
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-20Remove the SNES Open Bus behaviour by default. Also simplify translation again.Nebuleon Fumika
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-20Add back the -mlong-calls optimisation. It shortens the plugin's code a bit.Nebuleon Fumika
2012-12-19Raise the CPU's clock speed to 396 MHz while loading ROMs.Nebuleon Fumika
Also raise the CPU's clock speed to 396 MHz by default, instead of 360 MHz, when emulating a ROM.
2012-12-19Delete offsets.cpp, which is for a standalone tool that is unrelated to the ↵Nebuleon Fumika
emulator.
2012-12-18Un-inline a bunch of stuff.Nebuleon Fumika
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.
2012-12-17Remove more unneeded files.Nebuleon Fumika
2012-12-17Makefile overhaul.Nebuleon Fumika
2012-12-17Optimise for size. Allow the build process to use multiple CPU cores with ↵Nebuleon Fumika
make -jN.
2011-03-05first commitKitty Draper