comparison nuklear_ui/blastem_nuklear.c @ 1501:31a2997b745e nuklear_ui

Added RAM init and IO port config to system settings menu
author Michael Pavone <pavone@retrodev.com>
date Mon, 11 Dec 2017 19:16:44 -0800
parents 39a199dca772
children cb3c6395b28c
comparison
equal deleted inserted replaced
1500:39a199dca772 1501:31a2997b745e
9 #include "../util.h" 9 #include "../util.h"
10 #include "../paths.h" 10 #include "../paths.h"
11 #include "../saves.h" 11 #include "../saves.h"
12 #include "../blastem.h" 12 #include "../blastem.h"
13 #include "../config.h" 13 #include "../config.h"
14 #include "../io.h"
14 15
15 static struct nk_context *context; 16 static struct nk_context *context;
16 17
17 typedef void (*view_fun)(struct nk_context *); 18 typedef void (*view_fun)(struct nk_context *);
18 static view_fun current_view; 19 static view_fun current_view;
510 const uint32_t num_formats = sizeof(formats)/sizeof(*formats); 511 const uint32_t num_formats = sizeof(formats)/sizeof(*formats);
511 int32_t selected_format = -1; 512 int32_t selected_format = -1;
512 if (selected_format < 0) { 513 if (selected_format < 0) {
513 selected_format = find_match(formats, num_formats, "ui\0state_format\0", "native"); 514 selected_format = find_match(formats, num_formats, "ui\0state_format\0", "native");
514 } 515 }
516 const char *ram_inits[] = {
517 "zero",
518 "random"
519 };
520 const uint32_t num_inits = sizeof(ram_inits)/sizeof(*ram_inits);
521 static int32_t selected_init = -1;
522 if (selected_init < 0) {
523 selected_init = find_match(ram_inits, num_inits, "system\0ram_init\0", "zero");
524 }
525 const char *io_opts_1[] = {
526 "gamepad2.1",
527 "gamepad3.1",
528 "gamepad6.1",
529 "mouse",
530 "saturn keyboard",
531 "xband keyboard"
532 };
533 const char *io_opts_2[] = {
534 "gamepad2.2",
535 "gamepad3.2",
536 "gamepad6.2",
537 "mouse",
538 "saturn keyboard",
539 "xband keyboard"
540 };
541 static int32_t selected_io_1 = -1;
542 static int32_t selected_io_2 = -1;
543 const uint32_t num_io = sizeof(io_opts_1)/sizeof(*io_opts_1);
544 if (selected_io_1 < 0 || selected_io_2 < 0) {
545 selected_io_1 = find_match(io_opts_1, num_io, "io\0devices\0""1\0", "gamepad6.1");
546 selected_io_2 = find_match(io_opts_2, num_io, "io\0devices\0""2\0", "gamepad6.2");
547 }
548
515 uint32_t width = render_width(); 549 uint32_t width = render_width();
516 uint32_t height = render_height(); 550 uint32_t height = render_height();
517 if (nk_begin(context, "System Settings", nk_rect(0, 0, width, height), 0)) { 551 if (nk_begin(context, "System Settings", nk_rect(0, 0, width, height), 0)) {
518 nk_layout_row_static(context, 30, width > 300 ? 300 : width, 2); 552 nk_layout_row_static(context, 30, width > 300 ? 300 : width, 2);
519 settings_int_property(context, "68000 Clock Divider", "", "clocks\0m68k_divider\0", 7, 1, 53); 553 settings_int_property(context, "68000 Clock Divider", "", "clocks\0m68k_divider\0", 7, 1, 53);
520 settings_toggle(context, "Remember ROM Path", "ui\0remember_path\0", 1); 554 settings_toggle(context, "Remember ROM Path", "ui\0remember_path\0", 1);
521 selected_region = settings_dropdown_ex(context, "Default Region", region_codes, regions, num_regions, selected_region, "system\0default_region\0"); 555 selected_region = settings_dropdown_ex(context, "Default Region", region_codes, regions, num_regions, selected_region, "system\0default_region\0");
522 selected_format = settings_dropdown(context, "Save State Format", formats, num_formats, selected_format, "ui\0state_format\0"); 556 selected_format = settings_dropdown(context, "Save State Format", formats, num_formats, selected_format, "ui\0state_format\0");
557 selected_init = settings_dropdown(context, "Initial RAM Value", ram_inits, num_inits, selected_init, "system\0ram_init\0");
558 selected_io_1 = settings_dropdown_ex(context, "IO Port 1 Device", io_opts_1, device_type_names, num_io, selected_io_1, "io\0devices\0""1\0");
559 selected_io_2 = settings_dropdown_ex(context, "IO Port 2 Device", io_opts_2, device_type_names, num_io, selected_io_2, "io\0devices\0""2\0");
523 if (nk_button_label(context, "Back")) { 560 if (nk_button_label(context, "Back")) {
524 pop_view(); 561 pop_view();
525 } 562 }
526 nk_end(context); 563 nk_end(context);
527 } 564 }