summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io.c24
-rw-r--r--menu.c6
-rw-r--r--render.h51
-rw-r--r--rom.db17
4 files changed, 82 insertions, 16 deletions
diff --git a/io.c b/io.c
index 80472b2..30783a9 100644
--- a/io.c
+++ b/io.c
@@ -931,9 +931,33 @@ void set_keybindings(io_port *ports)
special = tern_insert_int(special, "left", RENDERKEY_LEFT);
special = tern_insert_int(special, "right", RENDERKEY_RIGHT);
special = tern_insert_int(special, "enter", '\r');
+ special = tern_insert_int(special, "space", ' ');
+ special = tern_insert_int(special, "tab", '\t');
+ special = tern_insert_int(special, "backspace", '\b');
special = tern_insert_int(special, "esc", RENDERKEY_ESC);
+ special = tern_insert_int(special, "delete", RENDERKEY_DEL);
special = tern_insert_int(special, "lshift", RENDERKEY_LSHIFT);
special = tern_insert_int(special, "rshift", RENDERKEY_RSHIFT);
+ special = tern_insert_int(special, "lctrl", RENDERKEY_LCTRL);
+ special = tern_insert_int(special, "rctrl", RENDERKEY_RCTRL);
+ special = tern_insert_int(special, "lalt", RENDERKEY_LALT);
+ special = tern_insert_int(special, "ralt", RENDERKEY_RALT);
+ special = tern_insert_int(special, "home", RENDERKEY_HOME);
+ special = tern_insert_int(special, "end", RENDERKEY_END);
+ special = tern_insert_int(special, "pageup", RENDERKEY_PAGEUP);
+ special = tern_insert_int(special, "pagedown", RENDERKEY_PAGEDOWN);
+ special = tern_insert_int(special, "f1", RENDERKEY_F1);
+ special = tern_insert_int(special, "f2", RENDERKEY_F2);
+ special = tern_insert_int(special, "f3", RENDERKEY_F3);
+ special = tern_insert_int(special, "f4", RENDERKEY_F4);
+ special = tern_insert_int(special, "f5", RENDERKEY_F5);
+ special = tern_insert_int(special, "f6", RENDERKEY_F6);
+ special = tern_insert_int(special, "f7", RENDERKEY_F7);
+ special = tern_insert_int(special, "f8", RENDERKEY_F8);
+ special = tern_insert_int(special, "f9", RENDERKEY_F9);
+ special = tern_insert_int(special, "f10", RENDERKEY_F10);
+ special = tern_insert_int(special, "f11", RENDERKEY_F11);
+ special = tern_insert_int(special, "f12", RENDERKEY_F12);
special = tern_insert_int(special, "select", RENDERKEY_SELECT);
special = tern_insert_int(special, "play", RENDERKEY_PLAY);
special = tern_insert_int(special, "search", RENDERKEY_SEARCH);
diff --git a/menu.c b/menu.c
index 30a42e2..8d215d0 100644
--- a/menu.c
+++ b/menu.c
@@ -142,6 +142,10 @@ void * menu_write_w(uint32_t address, void * context, uint16_t value)
qsort(entries, num_entries, sizeof(dir_entry), menu_dir_sort);
} else {
warning("Failed to open directory %s: %s\n", menu->curpath, strerror(errno));
+ entries = malloc(sizeof(dir_entry));
+ entries->name = strdup("..");
+ entries->is_dir = 1;
+ num_entries = 1;
}
uint8_t *dest;
for (size_t i = 0; i < num_entries; i++)
@@ -184,8 +188,8 @@ void * menu_write_w(uint32_t address, void * context, uint16_t value)
dest = get_native_pointer(dst, (void **)m68k->mem_pointers, &m68k->options->gen);
if (dest) {
*dest = dest[1] = 0;
- free_dir_list(entries, num_entries);
}
+ free_dir_list(entries, num_entries);
break;
}
case 1: {
diff --git a/render.h b/render.h
index c0454c4..7671c44 100644
--- a/render.h
+++ b/render.h
@@ -8,21 +8,42 @@
//TODO: Throw an ifdef in here once there's more than one renderer
#include <SDL.h>
-#define RENDERKEY_UP SDLK_UP
-#define RENDERKEY_DOWN SDLK_DOWN
-#define RENDERKEY_LEFT SDLK_LEFT
-#define RENDERKEY_RIGHT SDLK_RIGHT
-#define RENDERKEY_ESC SDLK_ESCAPE
-#define RENDERKEY_LSHIFT SDLK_LSHIFT
-#define RENDERKEY_RSHIFT SDLK_RSHIFT
-#define RENDERKEY_SELECT SDLK_SELECT
-#define RENDERKEY_PLAY SDLK_AUDIOPLAY
-#define RENDERKEY_SEARCH SDLK_AC_SEARCH
-#define RENDERKEY_BACK SDLK_AC_BACK
-#define RENDER_DPAD_UP SDL_HAT_UP
-#define RENDER_DPAD_DOWN SDL_HAT_DOWN
-#define RENDER_DPAD_LEFT SDL_HAT_LEFT
-#define RENDER_DPAD_RIGHT SDL_HAT_RIGHT
+#define RENDERKEY_UP SDLK_UP
+#define RENDERKEY_DOWN SDLK_DOWN
+#define RENDERKEY_LEFT SDLK_LEFT
+#define RENDERKEY_RIGHT SDLK_RIGHT
+#define RENDERKEY_ESC SDLK_ESCAPE
+#define RENDERKEY_DEL SDLK_DELETE
+#define RENDERKEY_LSHIFT SDLK_LSHIFT
+#define RENDERKEY_RSHIFT SDLK_RSHIFT
+#define RENDERKEY_LCTRL SDLK_LCTRL
+#define RENDERKEY_RCTRL SDLK_RCTRL
+#define RENDERKEY_LALT SDLK_LALT
+#define RENDERKEY_RALT SDLK_RALT
+#define RENDERKEY_HOME SDLK_HOME
+#define RENDERKEY_END SDLK_END
+#define RENDERKEY_PAGEUP SDLK_PAGEUP
+#define RENDERKEY_PAGEDOWN SDLK_PAGEDOWN
+#define RENDERKEY_F1 SDLK_F1
+#define RENDERKEY_F2 SDLK_F2
+#define RENDERKEY_F3 SDLK_F3
+#define RENDERKEY_F4 SDLK_F4
+#define RENDERKEY_F5 SDLK_F5
+#define RENDERKEY_F6 SDLK_F6
+#define RENDERKEY_F7 SDLK_F7
+#define RENDERKEY_F8 SDLK_F8
+#define RENDERKEY_F9 SDLK_F9
+#define RENDERKEY_F10 SDLK_F10
+#define RENDERKEY_F11 SDLK_F11
+#define RENDERKEY_F12 SDLK_F12
+#define RENDERKEY_SELECT SDLK_SELECT
+#define RENDERKEY_PLAY SDLK_AUDIOPLAY
+#define RENDERKEY_SEARCH SDLK_AC_SEARCH
+#define RENDERKEY_BACK SDLK_AC_BACK
+#define RENDER_DPAD_UP SDL_HAT_UP
+#define RENDER_DPAD_DOWN SDL_HAT_DOWN
+#define RENDER_DPAD_LEFT SDL_HAT_LEFT
+#define RENDER_DPAD_RIGHT SDL_HAT_RIGHT
#define render_relative_mouse SDL_SetRelativeMouseMode
#define MAX_JOYSTICKS 8
diff --git a/rom.db b/rom.db
index 08e8464..c153834 100644
--- a/rom.db
+++ b/rom.db
@@ -430,6 +430,23 @@ T-130016 {
1 mouse.1
}
}
+T-50286 {
+ name Buck Rogers: Countdown to Doomsday
+ SRAM {
+ size 8192
+ bus odd
+ }
+ map {
+ 0 {
+ device ROM
+ last 1FFFFF
+ }
+ 200000 {
+ device SRAM
+ last 3FFFFF
+ }
+ }
+}
#This entry is used by the GUI ROM
BlstMenu {
map {