From 461f2406555faaee7191871390192d06625f5a81 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Sun, 3 Feb 2013 05:59:48 -0500 Subject: 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. --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index e0732d3..854a285 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ C_SOURCES = source/unzip/explode.c source/unzip/unreduce.c \ source/unzip/unshrink.c source/unzip/unzip.c \ source/nds/bdf_font.c source/nds/bitmap.c \ source/nds/draw.c source/nds/ds2_main.c source/nds/gcheat.c \ - source/nds/gui.c + source/nds/gui.c source/nds/dma_adj.c CPP_SOURCES = source/apu.cpp source/apudebug.cpp source/c4.cpp \ source/c4emu.cpp source/cheats2.cpp source/cheats.cpp \ source/clip.cpp source/cpu.cpp source/cpuexec.cpp \ @@ -70,7 +70,8 @@ DEFS := -DSPC700_C -DEXECUTE_SUPERFX_PER_LINE -DSDD1_DECOMP \ -DVAR_CYCLES -DCPU_SHUTDOWN -DSPC700_SHUTDOWN \ -DNO_INLINE_SET_GET -DNOASM -DHAVE_MKSTEMP '-DACCEPT_SIZE_T=size_t' \ -DUNZIP_SUPPORT -DFOREVER_16_BIT_SOUND -DFOREVER_STEREO \ - -DFOREVER_FORWARD_STEREO -DNO_VOLATILE_SOUND -DSYNC_JOYPAD_AT_HBLANK + -DFOREVER_FORWARD_STEREO -DNO_VOLATILE_SOUND \ + -DSYNC_JOYPAD_AT_HBLANK -DDS2_DMA .PHONY: clean makedirs .SUFFIXES: .elf .dat .plg -- cgit v1.2.3 From b3a7f8f1fceddcd45ec62bcbf75ba128e4f84f5a Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Sun, 3 Feb 2013 19:26:34 -0500 Subject: 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. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 854a285..c325437 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ DEFS := -DSPC700_C -DEXECUTE_SUPERFX_PER_LINE -DSDD1_DECOMP \ -DNO_INLINE_SET_GET -DNOASM -DHAVE_MKSTEMP '-DACCEPT_SIZE_T=size_t' \ -DUNZIP_SUPPORT -DFOREVER_16_BIT_SOUND -DFOREVER_STEREO \ -DFOREVER_FORWARD_STEREO -DNO_VOLATILE_SOUND \ - -DSYNC_JOYPAD_AT_HBLANK -DDS2_DMA + -DACCUMULATE_JOYPAD -DDS2_DMA .PHONY: clean makedirs .SUFFIXES: .elf .dat .plg -- cgit v1.2.3 From 1c9094d99f6cb2f9ca63134cb7a348370b568b7c Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Mon, 4 Feb 2013 05:57:53 -0500 Subject: Release 1.28 after disabling the controller status sync hack. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index c325437..04b9181 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ DEFS := -DSPC700_C -DEXECUTE_SUPERFX_PER_LINE -DSDD1_DECOMP \ -DNO_INLINE_SET_GET -DNOASM -DHAVE_MKSTEMP '-DACCEPT_SIZE_T=size_t' \ -DUNZIP_SUPPORT -DFOREVER_16_BIT_SOUND -DFOREVER_STEREO \ -DFOREVER_FORWARD_STEREO -DNO_VOLATILE_SOUND \ - -DACCUMULATE_JOYPAD -DDS2_DMA + -DDS2_DMA .PHONY: clean makedirs .SUFFIXES: .elf .dat .plg -- cgit v1.2.3 From d1a7bf5eb558e7db4a1a27e15ebedb02e6b7f804 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Mon, 4 Feb 2013 23:45:44 -0500 Subject: 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. --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 04b9181..c5a8d38 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,14 @@ FS_DIR = $(DS2SDKPATH)/libsrc/fs CONSOLE_DIR = $(DS2SDKPATH)/libsrc/console KEY_DIR = $(DS2SDKPATH)/libsrc/key ZLIB_DIR = $(DS2SDKPATH)/libsrc/zlib +CORE_DIR = $(DS2SDKPATH)/libsrc/core LIBS := $(DS2SDKPATH)/lib/libds2b.a -lc -lm -lgcc EXTLIBS := $(DS2SDKPATH)/lib/libds2a.a INCLUDE := -Isource -Isource/unzip -Isource/nds -I$(DS2SDKPATH)/include \ - -I$(FS_DIR) -I$(CONSOLE_DIR) -I$(KEY_DIR) -I$(ZLIB_DIR) + -I$(FS_DIR) -I$(CONSOLE_DIR) -I$(KEY_DIR) -I$(ZLIB_DIR) \ + -I$(CORE_DIR) LINK_SPEC := $(DS2SDKPATH)/specs/link.xn START_ASM := $(DS2SDKPATH)/specs/start.S -- cgit v1.2.3