X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Fmenu.c;h=35ab449c27dc9a66f2dc9dc42af5c03eab1fd709;hb=69dfeea15942d588fe0e4b18b51cf54cfde5b272;hp=940279628bf0ae218ee510a1065845757bda4829;hpb=0c9ae59222a6fa9af18dcc072fdfb06cfca124d6;p=libpicofe.git diff --git a/common/menu.c b/common/menu.c index 9402796..35ab449 100644 --- a/common/menu.c +++ b/common/menu.c @@ -1,4 +1,4 @@ -// (c) Copyright 2006-2009 notaz, All rights reserved. +// (c) Copyright 2006-2010 notaz, All rights reserved. // Free for non-commercial use. // For commercial use, separate licencing terms must be obtained. @@ -25,10 +25,17 @@ static char static_buff[64]; static int menu_error_time = 0; char menu_error_msg[64] = { 0, }; +void *g_menuscreen_ptr; +void *g_menubg_src_ptr; void *g_menubg_ptr; #ifndef UIQ3 +#if !SCREEN_SIZE_FIXED +int g_menuscreen_w = MSCREEN_WIDTH; +int g_menuscreen_h = MSCREEN_HEIGHT; +#endif + static unsigned char *menu_font_data = NULL; static int menu_text_color = 0xffff; // default to white static int menu_sel_color = -1; // disabled @@ -46,7 +53,7 @@ static const int me_sfont_w = 6, me_sfont_h = 10; static void text_out16_(int x, int y, const char *text, int color) { int i, lh, tr, tg, tb, len; - unsigned short *dest = (unsigned short *)g_screen_ptr + x + y * g_screen_width; + unsigned short *dest = (unsigned short *)g_menuscreen_ptr + x + y * g_menuscreen_w; tr = (color & 0xf800) >> 8; tg = (color & 0x07e0) >> 3; tb = (color & 0x001f) << 3; @@ -66,8 +73,8 @@ static void text_out16_(int x, int y, const char *text, int color) } lh = me_mfont_h; - if (y + lh > g_screen_height) - lh = g_screen_height - y; + if (y + lh > g_menuscreen_h) + lh = g_menuscreen_h - y; for (i = 0; i < len; i++) { @@ -75,7 +82,7 @@ static void text_out16_(int x, int y, const char *text, int color) unsigned short *dst = dest; int u, l; - for (l = 0; l < lh; l++, dst += g_screen_width - me_mfont_w) + for (l = 0; l < lh; l++, dst += g_menuscreen_w - me_mfont_w) { for (u = me_mfont_w / 2; u > 0; u--, src++) { @@ -106,7 +113,7 @@ void text_out16(int x, int y, const char *texto, ...) { va_list args; char buffer[256]; - int maxw = (g_screen_width - x) / me_mfont_w; + int maxw = (g_menuscreen_w - x) / me_mfont_w; if (maxw < 0) return; @@ -139,7 +146,7 @@ static void smalltext_out16_(int x, int y, const char *texto, int color) break; src = fontdata6x8[c]; - dst = (unsigned short *)g_screen_ptr + x + y * g_screen_width; + dst = (unsigned short *)g_menuscreen_ptr + x + y * g_menuscreen_w; while (h--) { @@ -154,7 +161,7 @@ static void smalltext_out16_(int x, int y, const char *texto, int color) dst += multiplier; } - dst += g_screen_width - me_sfont_w; + dst += g_menuscreen_w - me_sfont_w; } src++; } @@ -164,7 +171,7 @@ static void smalltext_out16_(int x, int y, const char *texto, int color) static void smalltext_out16(int x, int y, const char *texto, int color) { char buffer[128]; - int maxw = (g_screen_width - x) / 6; + int maxw = (g_menuscreen_w - x) / me_sfont_w; if (maxw < 0) return; @@ -187,13 +194,13 @@ static void menu_draw_selection(int x, int y, int w) if (menu_sel_color < 0) return; // no selection hilight if (y > 0) y--; - dest = (unsigned short *)g_screen_ptr + x + y * g_screen_width + 14; + dest = (unsigned short *)g_menuscreen_ptr + x + y * g_menuscreen_w + me_mfont_w * 2 - 2; for (h = me_mfont_h + 1; h > 0; h--) { dst = dest; - for (i = w - 14; i > 0; i--) + for (i = w - (me_mfont_w * 2 - 2); i > 0; i--) *dst++ = menu_sel_color; - dest += g_screen_width; + dest += g_menuscreen_w; } } @@ -268,12 +275,13 @@ void menu_init(void) // load custom font and selector (stored as 1st symbol in font table) emu_make_path(buff, "skin/font.png", sizeof(buff)); - readpng(menu_font_data, buff, READPNG_FONT); + readpng(menu_font_data, buff, READPNG_FONT, + MENU_X2 ? 256 : 128, MENU_X2 ? 320 : 160); // default selector symbol is '>' memcpy(menu_font_data, menu_font_data + ((int)'>') * me_mfont_w * me_mfont_h / 2, me_mfont_w * me_mfont_h / 2); emu_make_path(buff, "skin/selector.png", sizeof(buff)); - readpng(menu_font_data, buff, READPNG_SELECTOR); + readpng(menu_font_data, buff, READPNG_SELECTOR, me_mfont_w, me_mfont_h); // load custom colors emu_make_path(buff, "skin/skin.txt", sizeof(buff)); @@ -334,8 +342,12 @@ static void menu_enter(int is_rom_loaded) { if (is_rom_loaded) { + void *src = g_menubg_src_ptr; + if (src == NULL) + src = g_menuscreen_ptr; + // darken the active framebuffer - menu_darken_bg(g_menubg_ptr, g_screen_ptr, g_screen_width * g_screen_height, 1); + menu_darken_bg(g_menubg_ptr, src, g_menuscreen_w * g_menuscreen_h, 1); } else { @@ -343,8 +355,8 @@ static void menu_enter(int is_rom_loaded) // should really only happen once, on startup.. emu_make_path(buff, "skin/background.png", sizeof(buff)); - if (readpng(g_menubg_ptr, buff, READPNG_BG) < 0) - memset(g_menubg_ptr, 0, g_screen_width * g_screen_height * 2); + if (readpng(g_menubg_ptr, buff, READPNG_BG, g_menuscreen_w, g_menuscreen_h) < 0) + memset(g_menubg_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2); } plat_video_menu_enter(is_rom_loaded); @@ -378,11 +390,11 @@ static int me_count(const menu_entry *ent) static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) { - const menu_entry *ent; + const menu_entry *ent, *ent_sel = entries; int x, y, w = 0, h = 0; int offs, col2_offs = 27 * me_mfont_w; + int vi_sel_ln = 0; const char *name; - int asel = 0; int i, n; /* calculate size of menu rect */ @@ -393,8 +405,10 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) if (!ent->enabled) continue; - if (i == sel) - asel = n; + if (i == sel) { + ent_sel = ent; + vi_sel_ln = n; + } name = NULL; wt = strlen(ent->name) * me_mfont_w; @@ -410,9 +424,12 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) wt = col2_offs; switch (ent->beh) { - case MB_NONE: break; + case MB_NONE: + break; case MB_OPT_ONOFF: - case MB_OPT_RANGE: wt += me_mfont_w * 3; break; + case MB_OPT_RANGE: + wt += me_mfont_w * 3; + break; case MB_OPT_CUSTOM: case MB_OPT_CUSTONOFF: case MB_OPT_CUSTRANGE: @@ -436,21 +453,21 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) h = n * me_mfont_h; w += me_mfont_w * 2; /* selector */ - if (w > g_screen_width) { - lprintf("width %d > %d\n", w, g_screen_width); - w = g_screen_width; + if (w > g_menuscreen_w) { + lprintf("width %d > %d\n", w, g_menuscreen_w); + w = g_menuscreen_w; } - if (h > g_screen_height) { - lprintf("height %d > %d\n", w, g_screen_height); - h = g_screen_height; + if (h > g_menuscreen_h) { + lprintf("height %d > %d\n", w, g_menuscreen_h); + h = g_menuscreen_h; } - x = g_screen_width / 2 - w / 2; - y = g_screen_height / 2 - h / 2; + x = g_menuscreen_w / 2 - w / 2; + y = g_menuscreen_h / 2 - h / 2; /* draw */ plat_video_menu_begin(); - menu_draw_selection(x, y + asel * me_mfont_h, w); + menu_draw_selection(x, y + vi_sel_ln * me_mfont_h, w); x += me_mfont_w * 2; for (ent = entries; ent->name; ent++) @@ -507,24 +524,24 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) } /* display help or message if we have one */ - h = (g_screen_height - h) / 2; // bottom area height + h = (g_menuscreen_h - h) / 2; // bottom area height if (menu_error_msg[0] != 0) { if (h >= me_mfont_h + 4) - text_out16(5, g_screen_height - me_mfont_h - 4, menu_error_msg); + text_out16(5, g_menuscreen_h - me_mfont_h - 4, menu_error_msg); else lprintf("menu msg doesn't fit!\n"); if (plat_get_ticks_ms() - menu_error_time > 2048) menu_error_msg[0] = 0; } - else if (entries[asel].help != NULL) { - const char *tmp = entries[asel].help; + else if (ent_sel->help != NULL) { + const char *tmp = ent_sel->help; int l; for (l = 0; tmp != NULL && *tmp != 0; l++) tmp = strchr(tmp + 1, '\n'); if (h >= l * me_sfont_h + 4) - for (tmp = entries[asel].help; l > 0; l--, tmp = strchr(tmp, '\n') + 1) - smalltext_out16(5, g_screen_height - (l * me_sfont_h + 4), tmp, 0xffff); + for (tmp = ent_sel->help; l > 0; l--, tmp = strchr(tmp, '\n') + 1) + smalltext_out16(5, g_menuscreen_h - (l * me_sfont_h + 4), tmp, 0xffff); } if (draw_more != NULL) @@ -665,14 +682,14 @@ static void draw_menu_credits(void) p++; } - x = g_screen_width / 2 - w * me_mfont_w / 2; - y = g_screen_height / 2 - h * me_mfont_h / 2; + x = g_menuscreen_w / 2 - w * me_mfont_w / 2; + y = g_menuscreen_h / 2 - h * me_mfont_h / 2; if (x < 0) x = 0; if (y < 0) y = 0; plat_video_menu_begin(); - for (p = creds; *p != 0 && y <= g_screen_height - me_mfont_h; y += me_mfont_h) { + for (p = creds; *p != 0 && y <= g_menuscreen_h - me_mfont_h; y += me_mfont_h) { text_out16(x, y, p); for (; *p != 0 && *p != '\n'; p++) @@ -690,30 +707,30 @@ static int cdload_called = 0; static void load_progress_cb(int percent) { - int ln, len = percent * g_screen_width / 100; - unsigned short *dst = (unsigned short *)g_screen_ptr + g_screen_width * 10 * 2; + int ln, len = percent * g_menuscreen_w / 100; + unsigned short *dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2; - if (len > g_screen_width) - len = g_screen_width; - for (ln = 10 - 2; ln > 0; ln--, dst += g_screen_width) + if (len > g_menuscreen_w) + len = g_menuscreen_w; + for (ln = me_sfont_h - 2; ln > 0; ln--, dst += g_menuscreen_w) memset(dst, 0xff, len * 2); plat_video_menu_end(); } static void cdload_progress_cb(const char *fname, int percent) { - int ln, len = percent * g_screen_width / 100; - unsigned short *dst = (unsigned short *)g_screen_ptr + g_screen_width * 10 * 2; + int ln, len = percent * g_menuscreen_w / 100; + unsigned short *dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2; - memset(dst, 0xff, g_screen_width * (me_sfont_h - 2) * 2); + memset(dst, 0xff, g_menuscreen_w * (me_sfont_h - 2) * 2); smalltext_out16(1, 3 * me_sfont_h, "Processing CD image / MP3s", 0xffff); smalltext_out16(1, 4 * me_sfont_h, fname, 0xffff); - dst += g_screen_width * me_sfont_h * 3; + dst += g_menuscreen_w * me_sfont_h * 3; - if (len > g_screen_width) - len = g_screen_width; - for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_screen_width) + if (len > g_menuscreen_w) + len = g_menuscreen_w; + for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_menuscreen_w) memset(dst, 0xff, len * 2); plat_video_menu_end(); @@ -761,13 +778,13 @@ static void do_delete(const char *fpath, const char *fname) plat_video_menu_begin(); if (!rom_loaded) - menu_darken_bg(g_screen_ptr, g_screen_ptr, g_screen_width * g_screen_height, 0); + menu_darken_bg(g_menuscreen_ptr, g_menuscreen_ptr, g_menuscreen_w * g_menuscreen_h, 0); len = strlen(fname); - if (len > g_screen_width/6) - len = g_screen_width/6; + if (len > g_menuscreen_w / me_sfont_w) + len = g_menuscreen_w / me_sfont_w; - mid = g_screen_width / 2; + mid = g_menuscreen_w / 2; text_out16(mid - me_mfont_w * 15 / 2, 8 * me_mfont_h, "About to delete"); smalltext_out16(mid - len * me_sfont_w / 2, 9 * me_mfont_h + 5, fname, 0xbdff); text_out16(mid - me_mfont_w * 13 / 2, 11 * me_mfont_h, "Are you sure?"); @@ -811,7 +828,7 @@ static void draw_dirlist(char *curdir, struct dirent **namelist, int n, int sel) int max_cnt, start, i, x, pos; void *darken_ptr; - max_cnt = g_screen_height / me_sfont_h; + max_cnt = g_menuscreen_h / me_sfont_h; start = max_cnt / 2 - sel; n--; // exclude current dir (".") @@ -820,8 +837,8 @@ static void draw_dirlist(char *curdir, struct dirent **namelist, int n, int sel) // if (!rom_loaded) // menu_darken_bg(gp2x_screen, 320*240, 0); - darken_ptr = (short *)g_screen_ptr + g_screen_width * max_cnt/2 * me_sfont_h; - menu_darken_bg(darken_ptr, darken_ptr, g_screen_width * me_sfont_h * 8 / 10, 0); + darken_ptr = (short *)g_menuscreen_ptr + g_menuscreen_w * max_cnt/2 * me_sfont_h; + menu_darken_bg(darken_ptr, darken_ptr, g_menuscreen_w * me_sfont_h * 8 / 10, 0); x = 5 + me_mfont_w + 1; if (start - 2 >= 0) @@ -1018,7 +1035,7 @@ static void draw_patchlist(int sel) { int max_cnt, start, i, pos, active; - max_cnt = g_screen_height / 10; + max_cnt = g_menuscreen_h / me_sfont_h; start = max_cnt / 2 - sel; plat_video_menu_begin(); @@ -1028,8 +1045,8 @@ static void draw_patchlist(int sel) if (pos < 0) continue; if (pos >= max_cnt) break; active = PicoPatches[i].active; - smalltext_out16(14, pos * me_sfont_h, active ? "ON " : "OFF", active ? 0xfff6 : 0xffff); - smalltext_out16(14+6*4, pos * me_sfont_h, PicoPatches[i].name, active ? 0xfff6 : 0xffff); + smalltext_out16(14, pos * me_sfont_h, active ? "ON " : "OFF", active ? 0xfff6 : 0xffff); + smalltext_out16(14 + me_sfont_w*4, pos * me_sfont_h, PicoPatches[i].name, active ? 0xfff6 : 0xffff); } pos = start + i; if (pos < max_cnt) @@ -1092,7 +1109,7 @@ static void draw_savestate_bg(int slot) PicoStateLoadGfx(fname); /* do a frame and fetch menu bg */ - pemu_forced_frame(POPT_EN_SOFTSCALE); + pemu_forced_frame(POPT_EN_SOFTSCALE, 0); menu_enter(1); PicoTmpStateRestore(tmp_state); @@ -1107,9 +1124,9 @@ static void draw_savestate_menu(int menu_sel, int is_loading) w = (13 + 2) * me_mfont_w; h = (1+2+10+1) * me_mfont_h; - x = g_screen_width / 2 - w / 2; + x = g_menuscreen_w / 2 - w / 2; if (x < 0) x = 0; - y = g_screen_height / 2 - h / 2; + y = g_menuscreen_h / 2 - h / 2; if (y < 0) y = 0; plat_video_menu_begin(); @@ -1251,8 +1268,8 @@ static void draw_key_config(const me_bind_action *opts, int opt_cnt, int player_ int x, y, w, i; w = ((player_idx >= 0) ? 20 : 30) * me_mfont_w; - x = g_screen_width / 2 - w / 2; - y = (g_screen_height - 4 * me_mfont_h) / 2 - (2 + opt_cnt) * me_mfont_h / 2; + x = g_menuscreen_w / 2 - w / 2; + y = (g_menuscreen_h - 4 * me_mfont_h) / 2 - (2 + opt_cnt) * me_mfont_h / 2; if (x < me_mfont_w * 2) x = me_mfont_w * 2; @@ -1273,23 +1290,23 @@ static void draw_key_config(const me_bind_action *opts, int opt_cnt, int player_ w = strlen(dev_name) * me_mfont_w; if (w < 30 * me_mfont_w) w = 30 * me_mfont_w; - if (w > g_screen_width) - w = g_screen_width; + if (w > g_menuscreen_w) + w = g_menuscreen_w; - x = g_screen_width / 2 - w / 2; + x = g_menuscreen_w / 2 - w / 2; if (!is_bind) { snprintf(buff2, sizeof(buff2), "%s", in_get_key_name(-1, -PBTN_MOK)); snprintf(buff, sizeof(buff), "%s - bind, %s - clear", buff2, in_get_key_name(-1, -PBTN_MA2)); - text_out16(x, g_screen_height - 4 * me_mfont_h, buff); + text_out16(x, g_menuscreen_h - 4 * me_mfont_h, buff); } else - text_out16(x, g_screen_height - 4 * me_mfont_h, "Press a button to bind/unbind"); + text_out16(x, g_menuscreen_h - 4 * me_mfont_h, "Press a button to bind/unbind"); if (dev_count > 1) { - text_out16(x, g_screen_height - 3 * me_mfont_h, dev_name); - text_out16(x, g_screen_height - 2 * me_mfont_h, "Press left/right for other devs"); + text_out16(x, g_menuscreen_h - 3 * me_mfont_h, dev_name); + text_out16(x, g_menuscreen_h - 2 * me_mfont_h, "Press left/right for other devs"); } plat_video_menu_end(); @@ -1342,11 +1359,13 @@ static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_ break; } continue; - case PBTN_MBACK: return; + case PBTN_MBACK: + return; case PBTN_MOK: if (sel >= opt_cnt) return; - while (in_menu_wait_any(30) & PBTN_MOK); + while (in_menu_wait_any(30) & PBTN_MOK) + ; break; case PBTN_MA2: in_unbind_all(dev_id, opts[sel].mask << mask_shift, bindtype); @@ -1368,7 +1387,10 @@ static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_ in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS)) unbind = 0; - in_bind_key(dev_id, kc, opts[sel].mask << mask_shift, bindtype, unbind); + if (unbind) + in_unbind_all(dev_id, opts[sel].mask << mask_shift, bindtype); + + in_bind_key(dev_id, kc, opts[sel].mask << mask_shift, bindtype, 0); } } @@ -1536,6 +1558,8 @@ static int menu_loop_cd_options(menu_id id, int keys) // ------------ 32X options menu ------------ +#ifndef NO_32X + // convert from multiplier of VClk static int mh_opt_sh2cycles(menu_id id, int keys) { @@ -1588,6 +1612,8 @@ static int menu_loop_32x_options(menu_id id, int keys) return 0; } +#endif + // ------------ adv options menu ------------ static menu_entry e_menu_adv_options[] = @@ -1811,7 +1837,9 @@ static menu_entry e_menu_options[] = mee_range (cpu_clk_name, MA_OPT_CPU_CLOCKS, currentConfig.CPUclock, 20, 900), mee_handler ("[Display options]", menu_loop_gfx_options), mee_handler ("[Sega/Mega CD options]", menu_loop_cd_options), +#ifndef NO_32X mee_handler ("[32X options]", menu_loop_32x_options), +#endif mee_handler ("[Advanced options]", menu_loop_adv_options), mee_cust_nosave("Save global config", MA_OPT_SAVECFG, mh_saveloadcfg, mgn_saveloadcfg), mee_cust_nosave("Save cfg for loaded game",MA_OPT_SAVECFG_GAME, mh_saveloadcfg, mgn_saveloadcfg), @@ -1869,7 +1897,7 @@ static void draw_text_debug(const char *str, int skip, int from) } str = p; - for (line = from; line < g_screen_height / me_sfont_h; line++) + for (line = from; line < g_menuscreen_h / me_sfont_h; line++) { smalltext_out16(1, line * me_sfont_h, str, 0xffff); while (*p && *p != '\n') @@ -1895,10 +1923,10 @@ static void draw_frame_debug(void) if (PicoDrawMask & PDRAW_SPRITES_HI_ON) memcpy(layer_str + 19, "spr_hi", 6); if (PicoDrawMask & PDRAW_32X_ON) memcpy(layer_str + 26, "32x", 4); - memset(g_screen_ptr, 0, g_screen_width * g_screen_height * 2); - pemu_forced_frame(0); + memset(g_menuscreen_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2); + pemu_forced_frame(0, 0); smalltext_out16(4, 1, "build: r" REVISION " "__DATE__ " " __TIME__ " " COMPILER, 0xffff); - smalltext_out16(4, g_screen_height - me_sfont_h, layer_str, 0xffff); + smalltext_out16(4, g_menuscreen_h - me_sfont_h, layer_str, 0xffff); } static void debug_menu_loop(void) @@ -1916,21 +1944,23 @@ static void debug_menu_loop(void) plat_debug_cat(tmp); draw_text_debug(tmp, 0, 0); if (dumped) { - smalltext_out16(g_screen_width - 6 * me_sfont_h, - g_screen_height - me_mfont_h, "dumped", 0xffff); + smalltext_out16(g_menuscreen_w - 6 * me_sfont_h, + g_menuscreen_h - me_mfont_h, "dumped", 0xffff); dumped = 0; } break; - case 1: draw_frame_debug(); break; - case 2: memset(g_screen_ptr, 0, g_screen_width * g_screen_height * 2); - pemu_forced_frame(0); - menu_darken_bg(g_screen_ptr, g_screen_ptr, g_screen_width * g_screen_height, 0); - PDebugShowSpriteStats((unsigned short *)g_screen_ptr + (g_screen_height/2 - 240/2)*g_screen_width + - g_screen_width/2 - 320/2, g_screen_width); break; - case 3: memset(g_screen_ptr, 0, g_screen_width * g_screen_height * 2); - PDebugShowPalette(g_screen_ptr, g_screen_width); - PDebugShowSprite((unsigned short *)g_screen_ptr + g_screen_width*120 + g_screen_width/2 + 16, - g_screen_width, spr_offs); + case 1: draw_frame_debug(); + break; + case 2: memset(g_menuscreen_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2); + pemu_forced_frame(0, 1); + menu_darken_bg(g_menuscreen_ptr, g_menuscreen_ptr, g_menuscreen_w * g_menuscreen_h, 0); + PDebugShowSpriteStats((unsigned short *)g_menuscreen_ptr + (g_menuscreen_h/2 - 240/2)*g_menuscreen_w + + g_menuscreen_w/2 - 320/2, g_menuscreen_w); + break; + case 3: memset(g_menuscreen_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2); + PDebugShowPalette(g_menuscreen_ptr, g_menuscreen_w); + PDebugShowSprite((unsigned short *)g_menuscreen_ptr + g_menuscreen_w*120 + g_menuscreen_w/2 + 16, + g_menuscreen_w, spr_offs); draw_text_debug(PDebugSpriteList(), spr_offs, 6); break; case 4: plat_video_menu_begin(); @@ -2196,7 +2226,9 @@ static menu_entry *e_menu_table[] = e_menu_gfx_options, e_menu_adv_options, e_menu_cd_options, +#ifndef NO_32X e_menu_32x_options, +#endif e_menu_keyconfig, e_menu_hidden, };