mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
revive GP2X build, update
This commit is contained in:
parent
8b78786e0f
commit
75a30842c4
35 changed files with 757 additions and 2592 deletions
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "emu.h"
|
||||
#include "menu_pico.h"
|
||||
|
@ -66,7 +67,6 @@ static const char *men_dummy[] = { NULL };
|
|||
#else
|
||||
#define MENU_OPTIONS_GFX
|
||||
#define MENU_OPTIONS_ADV
|
||||
#define menu_main_plat_draw NULL
|
||||
#endif
|
||||
|
||||
static void make_bg(int no_scale)
|
||||
|
@ -524,6 +524,8 @@ static menu_entry e_menu_adv_options[] =
|
|||
mee_onoff ("Don't save last used ROM", MA_OPT2_NO_LAST_ROM, currentConfig.EmuOpt, EOPT_NO_AUTOSVCFG),
|
||||
mee_onoff ("Disable idle loop patching",MA_OPT2_NO_IDLE_LOOPS,PicoOpt, POPT_DIS_IDLE_DET),
|
||||
mee_onoff ("Disable frame limiter", MA_OPT2_NO_FRAME_LIMIT,currentConfig.EmuOpt, EOPT_NO_FRMLIMIT),
|
||||
mee_onoff ("Enable dynarecs", MA_OPT2_SVP_DYNAREC, PicoOpt, POPT_EN_SVP_DRC),
|
||||
mee_onoff ("Status line in main menu", MA_OPT2_STATUS_LINE, currentConfig.EmuOpt, EOPT_SHOW_RTC),
|
||||
MENU_OPTIONS_ADV
|
||||
mee_end,
|
||||
};
|
||||
|
@ -537,14 +539,20 @@ static int menu_loop_adv_options(int id, int keys)
|
|||
|
||||
// ------------ gfx options menu ------------
|
||||
|
||||
static const char h_gamma[] = "Gamma/brightness adjustment (default 100)";
|
||||
static const char h_gamma[] = "Gamma/brightness adjustment (default 1.00)";
|
||||
|
||||
static const char *mgn_aopt_gamma(int id, int *offs)
|
||||
{
|
||||
sprintf(static_buff, "%i.%02i", currentConfig.gamma / 100, currentConfig.gamma % 100);
|
||||
return static_buff;
|
||||
}
|
||||
|
||||
static menu_entry e_menu_gfx_options[] =
|
||||
{
|
||||
mee_enum ("Video output mode", MA_OPT_VOUT_MODE, plat_target.vout_method, men_dummy),
|
||||
mee_enum ("Renderer", MA_OPT_RENDERER, currentConfig.renderer, renderer_names),
|
||||
mee_enum ("Filter", MA_OPT3_FILTERING, currentConfig.filter, men_dummy),
|
||||
mee_range_h("Gamma adjustment", MA_OPT3_GAMMA, currentConfig.gamma, 1, 200, h_gamma),
|
||||
mee_range_cust_h("Gamma correction", MA_OPT2_GAMMA, currentConfig.gamma, 1, 300, mgn_aopt_gamma, h_gamma),
|
||||
MENU_OPTIONS_GFX
|
||||
mee_end,
|
||||
};
|
||||
|
@ -753,10 +761,7 @@ static menu_entry e_menu_options[] =
|
|||
static int menu_loop_options(int id, int keys)
|
||||
{
|
||||
static int sel = 0;
|
||||
int i;
|
||||
|
||||
i = me_id2offset(e_menu_options, MA_OPT_CPU_CLOCKS);
|
||||
e_menu_options[i].enabled = e_menu_options[i].name[0] ? 1 : 0;
|
||||
me_enable(e_menu_options, MA_OPT_SAVECFG_GAME, PicoGameLoaded);
|
||||
me_enable(e_menu_options, MA_OPT_LOADCFG, config_slot != config_slot_current);
|
||||
|
||||
|
@ -941,6 +946,56 @@ static const char credits[] =
|
|||
" Lordus, Exophase, Rokas,\n"
|
||||
" Nemesis, Tasco Deluxe";
|
||||
|
||||
static void menu_main_draw_status(void)
|
||||
{
|
||||
static time_t last_bat_read = 0;
|
||||
static int last_bat_val = -1;
|
||||
unsigned short *bp = g_screen_ptr;
|
||||
int bat_h = me_mfont_h * 2 / 3;
|
||||
int i, u, w, wfill, batt_val;
|
||||
struct tm *tmp;
|
||||
time_t ltime;
|
||||
char time_s[16];
|
||||
|
||||
if (!(currentConfig.EmuOpt & EOPT_SHOW_RTC))
|
||||
return;
|
||||
|
||||
ltime = time(NULL);
|
||||
tmp = gmtime(<ime);
|
||||
strftime(time_s, sizeof(time_s), "%H:%M", tmp);
|
||||
|
||||
text_out16(g_screen_width - me_mfont_w * 6, me_mfont_h + 2, time_s);
|
||||
|
||||
if (ltime - last_bat_read > 10) {
|
||||
last_bat_read = ltime;
|
||||
last_bat_val = batt_val = plat_target_bat_capacity_get();
|
||||
}
|
||||
else
|
||||
batt_val = last_bat_val;
|
||||
|
||||
if (batt_val < 0 || batt_val > 100)
|
||||
return;
|
||||
|
||||
/* battery info */
|
||||
bp += (me_mfont_h * 2 + 2) * g_screen_width + 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;
|
||||
for (i = 0; i <= bat_h; i++)
|
||||
bp[i * g_screen_width] =
|
||||
bp[i * g_screen_width + 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;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
static int main_menu_handler(int id, int keys)
|
||||
{
|
||||
const char *ret_name;
|
||||
|
@ -1029,7 +1084,7 @@ void menu_loop(void)
|
|||
|
||||
menu_enter(PicoGameLoaded);
|
||||
in_set_config_int(0, IN_CFG_BLOCKING, 1);
|
||||
me_loop_d(e_menu_main, &sel, NULL, menu_main_plat_draw);
|
||||
me_loop_d(e_menu_main, &sel, NULL, menu_main_draw_status);
|
||||
|
||||
if (PicoGameLoaded) {
|
||||
if (engineState == PGS_Menu)
|
||||
|
@ -1163,6 +1218,12 @@ void menu_init(void)
|
|||
|
||||
menu_init_base();
|
||||
|
||||
i = 0;
|
||||
#if defined(_SVP_DRC) || defined(DRC_SH2)
|
||||
i = 1;
|
||||
#endif
|
||||
me_enable(e_menu_adv_options, MA_OPT2_SVP_DYNAREC, i);
|
||||
|
||||
i = me_id2offset(e_menu_gfx_options, MA_OPT_VOUT_MODE);
|
||||
e_menu_gfx_options[i].data = plat_target.vout_methods;
|
||||
me_enable(e_menu_gfx_options, MA_OPT_VOUT_MODE,
|
||||
|
@ -1173,6 +1234,13 @@ void menu_init(void)
|
|||
me_enable(e_menu_gfx_options, MA_OPT3_FILTERING,
|
||||
plat_target.hwfilters != NULL);
|
||||
|
||||
me_enable(e_menu_gfx_options, MA_OPT3_GAMMA,
|
||||
me_enable(e_menu_gfx_options, MA_OPT2_GAMMA,
|
||||
plat_target.gamma_set != NULL);
|
||||
|
||||
i = me_id2offset(e_menu_options, MA_OPT_CPU_CLOCKS);
|
||||
e_menu_options[i].enabled = 0;
|
||||
if (plat_target.cpu_clock_set != NULL) {
|
||||
e_menu_options[i].name = "CPU clock";
|
||||
e_menu_options[i].enabled = 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue