diff --git a/Makefile b/Makefile index 3eeee31..def5708 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ include $(DEVKITARM)/ds_rules export TARGET := SpeccySE export TOPDIR := $(CURDIR) -export VERSION := 1.0 +export VERSION := 1.1 ICON := -b $(CURDIR)/logo.bmp "SpeccySE $(VERSION);wavemotion-dave;https://github.com/wavemotion-dave/SpeccySE" diff --git a/SpeccySE.nds b/SpeccySE.nds index a330d97..d7fbd7b 100644 Binary files a/SpeccySE.nds and b/SpeccySE.nds differ diff --git a/arm9/gfx_data/pdev_bg0.png b/arm9/gfx_data/pdev_bg0.png index c85fcbf..33e3a41 100644 Binary files a/arm9/gfx_data/pdev_bg0.png and b/arm9/gfx_data/pdev_bg0.png differ diff --git a/arm9/source/SpeccySE.c b/arm9/source/SpeccySE.c index 97268a5..51a3f75 100644 --- a/arm9/source/SpeccySE.c +++ b/arm9/source/SpeccySE.c @@ -1100,13 +1100,13 @@ u8 speccyTapePosition(void) } // ---------------------------------------------------------------------------- -// Chuckie-Style d-pad keeps moving in the last known direction for a few more +// Slide-n-Glide D-pad keeps moving in the last known direction for a few more // frames to help make those hairpin turns up and off ladders much easier... // ---------------------------------------------------------------------------- -u8 chuckie_key_up = 0; -u8 chuckie_key_down = 0; -u8 chuckie_key_left = 0; -u8 chuckie_key_right = 0; +u8 slide_n_glide_key_up = 0; +u8 slide_n_glide_key_down = 0; +u8 slide_n_glide_key_left = 0; +u8 slide_n_glide_key_right = 0; // ------------------------------------------------------------------------ // The main emulation loop is here... call into the Z80 and render frame @@ -1380,50 +1380,50 @@ void SpeccySE_main(void) // TODO: add diagonal dpad support... not sure how often this is needed } - if (myConfig.dpad == DPAD_CHUCKIE) // CHUCKIE-EGG Style... hold left/right or up/down for a few frames + if (myConfig.dpad == DPAD_SLIDE_N_GLIDE) // CHUCKIE-EGG Style... hold left/right or up/down for a few frames { if (nds_key & KEY_UP) { - chuckie_key_up = 12; - chuckie_key_down = 0; + slide_n_glide_key_up = 12; + slide_n_glide_key_down = 0; } if (nds_key & KEY_DOWN) { - chuckie_key_down = 12; - chuckie_key_up = 0; + slide_n_glide_key_down = 12; + slide_n_glide_key_up = 0; } if (nds_key & KEY_LEFT) { - chuckie_key_left = 12; - chuckie_key_right = 0; + slide_n_glide_key_left = 12; + slide_n_glide_key_right = 0; } if (nds_key & KEY_RIGHT) { - chuckie_key_right = 12; - chuckie_key_left = 0; + slide_n_glide_key_right = 12; + slide_n_glide_key_left = 0; } - if (chuckie_key_up) + if (slide_n_glide_key_up) { - chuckie_key_up--; + slide_n_glide_key_up--; nds_key |= KEY_UP; } - if (chuckie_key_down) + if (slide_n_glide_key_down) { - chuckie_key_down--; + slide_n_glide_key_down--; nds_key |= KEY_DOWN; } - if (chuckie_key_left) + if (slide_n_glide_key_left) { - chuckie_key_left--; + slide_n_glide_key_left--; nds_key |= KEY_LEFT; } - if (chuckie_key_right) + if (slide_n_glide_key_right) { - chuckie_key_right--; + slide_n_glide_key_right--; nds_key |= KEY_RIGHT; } } @@ -1458,10 +1458,10 @@ void SpeccySE_main(void) } else // No NDS keys pressed... { - if (chuckie_key_up) chuckie_key_up--; - if (chuckie_key_down) chuckie_key_down--; - if (chuckie_key_left) chuckie_key_left--; - if (chuckie_key_right) chuckie_key_right--; + if (slide_n_glide_key_up) slide_n_glide_key_up--; + if (slide_n_glide_key_down) slide_n_glide_key_down--; + if (slide_n_glide_key_left) slide_n_glide_key_left--; + if (slide_n_glide_key_right) slide_n_glide_key_right--; last_mapped_key = 0; } diff --git a/arm9/source/SpeccyUtils.c b/arm9/source/SpeccyUtils.c index 7fd9f14..8e312ed 100644 --- a/arm9/source/SpeccyUtils.c +++ b/arm9/source/SpeccyUtils.c @@ -908,7 +908,7 @@ const struct options_t Option_Table[2][20] = {"TAPE SPEED", {"NORMAL", "ACCELERATED"}, &myConfig.tapeSpeed, 2}, {"GAME SPEED", {"100%", "110%", "120%", "90%", "80%"}, &myConfig.gameSpeed, 5}, {"BUS CONTEND", {"NORMAL", "LIGHT", "HEAVY"}, &myConfig.contention, 3}, - {"NDS D-PAD", {"NORMAL", "DIAGONALS", "CHUCKIE"}, &myConfig.dpad, 3}, + {"NDS D-PAD", {"NORMAL", "DIAGONALS", "SLIDE-N-GLIDE"}, &myConfig.dpad, 3}, {NULL, {"", ""}, NULL, 1}, }, diff --git a/arm9/source/SpeccyUtils.h b/arm9/source/SpeccyUtils.h index 26686ae..bec1ad0 100644 --- a/arm9/source/SpeccyUtils.h +++ b/arm9/source/SpeccyUtils.h @@ -31,7 +31,7 @@ #define DPAD_NORMAL 0 #define DPAD_DIAGONALS 1 -#define DPAD_CHUCKIE 2 +#define DPAD_SLIDE_N_GLIDE 2 extern char last_path[MAX_FILENAME_LEN]; extern char last_file[MAX_FILENAME_LEN]; diff --git a/readme.md b/readme.md index 6f70db8..99f8b41 100644 --- a/readme.md +++ b/readme.md @@ -19,7 +19,7 @@ Features : * Kempston and Sinclair joystick support * Fully configurable keys for the 12 NDS keys to any combination of joystick/keyboard * Save and Restore states so you can pick up where you left off -* Chuckie-Egg style Joystick configuration to make climing ladders more forgiving (try it - you'll like it!) +* Slide-n-Glide style Joystick configuration to make climbing ladders in games like Chuckie-Egg more forgiving (try it - you'll like it!) * High Score saving for 10 scores with initials, date/time. * Solid Z80 core that passes the ZEXDOC test suite (covering everything but not undocumented flags). * Minimal design asthetic - pick game, play game. Runs unpached from your SD card via TWL++ or similar. @@ -130,16 +130,15 @@ the 'REDEFINE KEYS' menu, you can press the NDS 'X' button to toggle between a number of commonly used preset keys for various ZX games (QAOP, ZXM, etc). By default, the configuration for any game is set to use the Kempston joystick. -Also be aware that there is a D-PAD option that can be set to 'CHUCKIE' for -games that are often unforgiving using a joystick. If you've ever played +Also be aware that there is a D-PAD option that can be set to 'SLIDE-N-GLIDE' +for games that are often unforgiving using a joystick. If you've ever played Chuckie Egg on a keybaord you know that it's pinpoint percise... but with a joystick, it can be a bit frustrating trying to find the exact spot to -transition from Left/Right to Up/Down to climb a ladder. The 'CHUCKIE' mode +transition from Left/Right to Up/Down to climb a ladder. This new joy mode will hold the L/R or U/D for a fraction of a frame while the transition is made. This allows for buttery smooth (relatively speaking) transitions on the ladders. It's likely other games will benefit from this mode - but -Chuckie Egg is the reason I put it into the emulator and so that's the -name it gets. +Chuckie Egg is the reason I put it into the emulator. Game Options / Global Options : ----------------------- @@ -260,6 +259,12 @@ you're likely going to want ZXDS. Version History : ----------------------- + +Version 1.1 - 30-Apr-2025 by wavemotion-dave +* Double buffer video on DSi/XL/LL for reduced tearing +* Rebranded 'Chuckie Egg-Style' joystick handling to 'Slide-n-Glide' +* Minor cleanups as time permitted + Version 1.0 - 14-Apr-2025 by wavemotion-dave * First official release of Speccy-SE!