{
unsigned short *src = (void *)g_menubg_src_ptr;
int w = g_screen_width, h = g_screen_height;
+ int pp = g_screen_ppitch;
short *dst;
int x, y;
d += (g_menuscreen_h / 2 - h * 2 / 2)
* g_menuscreen_w / 2;
d += (g_menuscreen_w / 2 - w * 2 / 2) / 2;
- for (y = 0; y < h; y++, src += w, d += g_menuscreen_w*2/2) {
+ for (y = 0; y < h; y++, src += pp, d += g_menuscreen_w*2/2) {
for (x = 0; x < w; x++) {
t = src[x];
t = ((t & 0xf79e)>>1) - ((t & 0xc618)>>3);
(g_menuscreen_w / 2 - w / 2);
// darken the active framebuffer
- for (; h > 0; dst += g_menuscreen_w, src += g_screen_width, h--)
+ for (; h > 0; dst += g_menuscreen_w, src += pp, h--)
menu_darken_bg(dst, src, w, 1);
}
len = g_menuscreen_w;
menu_draw_begin(0, 1);
- dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2;
- for (ln = me_sfont_h - 2; ln > 0; ln--, dst += g_menuscreen_w)
+ dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_pp * me_sfont_h * 2;
+ for (ln = me_sfont_h - 2; ln > 0; ln--, dst += g_menuscreen_pp)
memset(dst, 0xff, len * 2);
menu_draw_end();
}
unsigned short *dst;
menu_draw_begin(0, 1);
- dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2;
- memset(dst, 0xff, g_menuscreen_w * (me_sfont_h - 2) * 2);
+ dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_pp * me_sfont_h * 2;
+
+ menuscreen_memset_lines(dst, 0xff, me_sfont_h - 2);
smalltext_out16(1, 3 * me_sfont_h, "Processing CD image / MP3s", 0xffff);
smalltext_out16(1, 4 * me_sfont_h, fname, 0xffff);
- dst += g_menuscreen_w * me_sfont_h * 3;
+ dst += g_menuscreen_pp * me_sfont_h * 3;
if (len > g_menuscreen_w)
len = g_menuscreen_w;
- for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_menuscreen_w)
+ for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_menuscreen_pp)
memset(dst, 0xff, len * 2);
menu_draw_end();
// ------------ adv options menu ------------
+static const char h_ovrclk[] = "Will break some games, keep at 0";
+
static menu_entry e_menu_adv_options[] =
{
mee_onoff ("SRAM/BRAM saves", MA_OPT_SRAM_STATES, currentConfig.EmuOpt, EOPT_EN_SRAM),
mee_onoff ("Disable sprite limit", MA_OPT2_NO_SPRITE_LIM, PicoIn.opt, POPT_DIS_SPRITE_LIM),
+ mee_range_h ("Overclock M68k (%)", MA_OPT2_OVERCLOCK_M68K,currentConfig.overclock_68k, 0, 1000, h_ovrclk),
mee_onoff ("Emulate Z80", MA_OPT2_ENABLE_Z80, PicoIn.opt, POPT_EN_Z80),
mee_onoff ("Emulate YM2612 (FM)", MA_OPT2_ENABLE_YM2612, PicoIn.opt, POPT_EN_FM),
mee_onoff ("Emulate SN76496 (PSG)", MA_OPT2_ENABLE_SN76496,PicoIn.opt, POPT_EN_PSG),
static int menu_loop_adv_options(int id, int keys)
{
static int sel = 0;
+
me_loop(e_menu_adv_options, &sel);
+ PicoIn.overclockM68k = currentConfig.overclock_68k; // int vs short
+
return 0;
}
{
switch (id) {
case MA_OPT_SOUND_QUALITY:
- PsndRate = sndrate_prevnext(PsndRate, keys & PBTN_RIGHT);
+ PicoIn.sndRate = sndrate_prevnext(PicoIn.sndRate, keys & PBTN_RIGHT);
break;
case MA_OPT_REGION:
region_prevnext(keys & PBTN_RIGHT);
const char *str2;
*offs = -8;
str2 = (PicoIn.opt & POPT_EN_STEREO) ? "stereo" : "mono";
- sprintf(static_buff, "%5iHz %s", PsndRate, str2);
+ sprintf(static_buff, "%5iHz %s", PicoIn.sndRate, str2);
return static_buff;
}
break;
case 2: pemu_forced_frame(1, 0);
make_bg(1);
- PDebugShowSpriteStats((unsigned short *)g_menuscreen_ptr + (g_menuscreen_h/2 - 240/2)*g_menuscreen_w +
- g_menuscreen_w/2 - 320/2, g_menuscreen_w);
+ PDebugShowSpriteStats((unsigned short *)g_menuscreen_ptr
+ + (g_menuscreen_h/2 - 240/2) * g_menuscreen_pp
+ + g_menuscreen_w/2 - 320/2, g_menuscreen_pp);
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);
+ case 3: menuscreen_memset_lines(g_menuscreen_ptr, 0, g_menuscreen_h);
+ PDebugShowPalette(g_menuscreen_ptr, g_menuscreen_pp);
+ PDebugShowSprite((unsigned short *)g_menuscreen_ptr
+ + g_menuscreen_pp * 120 + g_menuscreen_w / 2 + 16,
+ g_menuscreen_pp, spr_offs);
draw_text_debug(PDebugSpriteList(), spr_offs, 6);
break;
case 4: tmp = PDebug32x();
if (inp & PBTN_UP) pv->debug_p ^= PVD_KILL_S_HI;
if (inp & PBTN_MA2) pv->debug_p ^= PVD_KILL_32X;
if (inp & PBTN_MOK) {
- PsndOut = NULL; // just in case
+ PicoIn.sndOut = NULL; // just in case
PicoIn.skipFrame = 1;
PicoFrame();
PicoIn.skipFrame = 0;
return;
/* battery info */
- bp += (me_mfont_h * 2 + 2) * g_screen_width + g_screen_width - me_mfont_w * 3 - 3;
+ bp += (me_mfont_h * 2 + 2) * g_screen_ppitch + g_screen_width - me_mfont_w * 3 - 3;
for (i = 0; i < me_mfont_w * 2; i++)
bp[i] = menu_text_color;
for (i = 0; i < me_mfont_w * 2; i++)
- bp[i + g_screen_width * bat_h] = menu_text_color;
+ bp[i + g_screen_ppitch * bat_h] = menu_text_color;
for (i = 0; i <= bat_h; i++)
- bp[i * g_screen_width] =
- bp[i * g_screen_width + me_mfont_w * 2] = menu_text_color;
+ bp[i * g_screen_ppitch] =
+ bp[i * g_screen_ppitch + me_mfont_w * 2] = menu_text_color;
for (i = 2; i < bat_h - 1; i++)
- bp[i * g_screen_width - 1] =
- bp[i * g_screen_width - 2] = menu_text_color;
+ bp[i * g_screen_ppitch - 1] =
+ bp[i * g_screen_ppitch - 2] = menu_text_color;
w = me_mfont_w * 2 - 1;
wfill = batt_val * w / 100;
for (u = 1; u < bat_h; u++)
for (i = 0; i < wfill; i++)
- bp[(w - i) + g_screen_width * u] = menu_text_color;
+ bp[(w - i) + g_screen_ppitch * u] = menu_text_color;
}
static int main_menu_handler(int id, int keys)