Mercurial > repos > blastem
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 } |