notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
random fixes (root path and mmap svp tcache)
[libpicofe.git]
/
common
/
menu.c
diff --git
a/common/menu.c
b/common/menu.c
index
412dbc2
..
7bf133c
100644
(file)
--- a/
common/menu.c
+++ b/
common/menu.c
@@
-262,14
+262,17
@@
void menu_init(void)
}
\r
\r
// load custom font and selector (stored as 1st symbol in font table)
\r
}
\r
\r
// load custom font and selector (stored as 1st symbol in font table)
\r
- readpng(menu_font_data, "skin/font.png", READPNG_FONT);
\r
+ emu_make_path(buff, "skin/font.png", sizeof(buff));
\r
+ readpng(menu_font_data, buff, READPNG_FONT);
\r
// default selector symbol is '>'
\r
memcpy(menu_font_data, menu_font_data + ((int)'>') * me_mfont_w * me_mfont_h / 2,
\r
me_mfont_w * me_mfont_h / 2);
\r
// default selector symbol is '>'
\r
memcpy(menu_font_data, menu_font_data + ((int)'>') * me_mfont_w * me_mfont_h / 2,
\r
me_mfont_w * me_mfont_h / 2);
\r
- readpng(menu_font_data, "skin/selector.png", READPNG_SELECTOR);
\r
+ emu_make_path(buff, "skin/selector.png", sizeof(buff));
\r
+ readpng(menu_font_data, buff, READPNG_SELECTOR);
\r
\r
// load custom colors
\r
\r
// load custom colors
\r
- f = fopen("skin/skin.txt", "r");
\r
+ emu_make_path(buff, "skin/skin.txt", sizeof(buff));
\r
+ f = fopen(buff, "r");
\r
if (f != NULL)
\r
{
\r
lprintf("found skin.txt\n");
\r
if (f != NULL)
\r
{
\r
lprintf("found skin.txt\n");
\r
@@
-328,7
+331,7
@@
static void me_draw(const menu_entry *entries, int sel)
{
\r
const menu_entry *ent;
\r
int x, y, w = 0, h = 0;
\r
{
\r
const menu_entry *ent;
\r
int x, y, w = 0, h = 0;
\r
- int offs,
opt
_offs = 27 * me_mfont_w;
\r
+ int offs,
col2
_offs = 27 * me_mfont_w;
\r
const char *name;
\r
int asel = 0;
\r
int i, n;
\r
const char *name;
\r
int asel = 0;
\r
int i, n;
\r
@@
-353,9
+356,9
@@
static void me_draw(const menu_entry *entries, int sel)
\r
if (ent->beh != MB_NONE)
\r
{
\r
\r
if (ent->beh != MB_NONE)
\r
{
\r
- if (wt >
opt
_offs)
\r
-
opt
_offs = wt + me_mfont_w;
\r
- wt =
opt
_offs;
\r
+ if (wt >
col2
_offs)
\r
+
col2
_offs = wt + me_mfont_w;
\r
+ wt =
col2
_offs;
\r
\r
switch (ent->beh) {
\r
case MB_NONE: break;
\r
\r
switch (ent->beh) {
\r
case MB_NONE: break;
\r
@@
-415,10
+418,10
@@
static void me_draw(const menu_entry *entries, int sel)
case MB_NONE:
\r
break;
\r
case MB_OPT_ONOFF:
\r
case MB_NONE:
\r
break;
\r
case MB_OPT_ONOFF:
\r
- text_out16(x +
opt
_offs, y, (*(int *)ent->var & ent->mask) ? "ON" : "OFF");
\r
+ text_out16(x +
col2
_offs, y, (*(int *)ent->var & ent->mask) ? "ON" : "OFF");
\r
break;
\r
case MB_OPT_RANGE:
\r
break;
\r
case MB_OPT_RANGE:
\r
- text_out16(x +
opt
_offs, y, "%i", *(int *)ent->var);
\r
+ text_out16(x +
col2
_offs, y, "%i", *(int *)ent->var);
\r
break;
\r
case MB_OPT_CUSTOM:
\r
case MB_OPT_CUSTONOFF:
\r
break;
\r
case MB_OPT_CUSTOM:
\r
case MB_OPT_CUSTONOFF:
\r
@@
-428,7
+431,7
@@
static void me_draw(const menu_entry *entries, int sel)
if (ent->generate_name)
\r
name = ent->generate_name(ent->id, &offs);
\r
if (name != NULL)
\r
if (ent->generate_name)
\r
name = ent->generate_name(ent->id, &offs);
\r
if (name != NULL)
\r
- text_out16(x +
opt
_offs + offs * me_mfont_w, y, "%s", name);
\r
+ text_out16(x +
col2
_offs + offs * me_mfont_w, y, "%s", name);
\r
break;
\r
}
\r
\r
break;
\r
}
\r
\r
@@
-949,7
+952,7
@@
static void state_check_slots(void)
state_slot_flags = 0;
\r
\r
for (slot = 0; slot < 10; slot++) {
\r
state_slot_flags = 0;
\r
\r
for (slot = 0; slot < 10; slot++) {
\r
- if (emu_check
SaveF
ile(slot))
\r
+ if (emu_check
_save_f
ile(slot))
\r
state_slot_flags |= 1 << slot;
\r
}
\r
}
\r
state_slot_flags |= 1 << slot;
\r
}
\r
}
\r
@@
-962,7
+965,7
@@
static void draw_savestate_bg(int slot)
void *tmp_vram, *file;
\r
char *fname;
\r
\r
void *tmp_vram, *file;
\r
char *fname;
\r
\r
- fname = emu_
GetSaveFN
ame(1, 0, slot);
\r
+ fname = emu_
get_save_fn
ame(1, 0, slot);
\r
if (!fname) return;
\r
\r
tmp_vram = malloc(sizeof(Pico.vram));
\r
if (!fname) return;
\r
\r
tmp_vram = malloc(sizeof(Pico.vram));
\r
@@
-1067,7
+1070,7
@@
static int menu_loop_savestate(int is_loading)
if (inp & PBTN_MOK) { // save/load
\r
if (menu_sel < 10) {
\r
state_slot = menu_sel;
\r
if (inp & PBTN_MOK) { // save/load
\r
if (menu_sel < 10) {
\r
state_slot = menu_sel;
\r
- if (emu_
SaveLoadG
ame(is_loading, 0)) {
\r
+ if (emu_
save_load_g
ame(is_loading, 0)) {
\r
me_update_msg(is_loading ? "Load failed" : "Save failed");
\r
return 0;
\r
}
\r
me_update_msg(is_loading ? "Load failed" : "Save failed");
\r
return 0;
\r
}
\r
@@
-1084,8
+1087,8
@@
static int menu_loop_savestate(int is_loading)
\r
static char *action_binds(int player_idx, int action_mask, int dev_id)
\r
{
\r
\r
static char *action_binds(int player_idx, int action_mask, int dev_id)
\r
{
\r
+ int k, count, can_combo, type;
\r
const int *binds;
\r
const int *binds;
\r
- int k, count;
\r
\r
static_buff[0] = 0;
\r
\r
\r
static_buff[0] = 0;
\r
\r
@@
-1094,21
+1097,30
@@
static char *action_binds(int player_idx, int action_mask, int dev_id)
return static_buff;
\r
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
return static_buff;
\r
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
+ can_combo = in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS);
\r
+
\r
+ type = IN_BINDTYPE_EMU;
\r
+ if (player_idx >= 0) {
\r
+ can_combo = 0;
\r
+ type = IN_BINDTYPE_PLAYER12;
\r
+ }
\r
+ if (player_idx == 1)
\r
+ action_mask <<= 16;
\r
+
\r
for (k = 0; k < count; k++)
\r
{
\r
const char *xname;
\r
int len;
\r
for (k = 0; k < count; k++)
\r
{
\r
const char *xname;
\r
int len;
\r
- if (!(binds[k] & action_mask))
\r
- continue;
\r
\r
\r
- if (
player_idx >= 0 && ((binds[k] >> 16) & 3) != player_idx
)
\r
+ if (
!(binds[IN_BIND_OFFS(k, type)] & action_mask)
)
\r
continue;
\r
\r
xname = in_get_key_name(dev_id, k);
\r
len = strlen(static_buff);
\r
if (len) {
\r
continue;
\r
\r
xname = in_get_key_name(dev_id, k);
\r
len = strlen(static_buff);
\r
if (len) {
\r
- strncat(static_buff, " + ", sizeof(static_buff) - len - 1);
\r
- len += 3;
\r
+ strncat(static_buff, can_combo ? " + " : ", ",
\r
+ sizeof(static_buff) - len - 1);
\r
+ len += can_combo ? 3 : 2;
\r
}
\r
strncat(static_buff, xname, sizeof(static_buff) - len - 1);
\r
}
\r
}
\r
strncat(static_buff, xname, sizeof(static_buff) - len - 1);
\r
}
\r
@@
-1116,7
+1128,7
@@
static char *action_binds(int player_idx, int action_mask, int dev_id)
return static_buff;
\r
}
\r
\r
return static_buff;
\r
}
\r
\r
-static int count_bound_keys(int dev_id, int action_mask, int
player_idx
)
\r
+static int count_bound_keys(int dev_id, int action_mask, int
bindtype
)
\r
{
\r
const int *binds;
\r
int k, keys = 0;
\r
{
\r
const int *binds;
\r
int k, keys = 0;
\r
@@
-1129,13
+1141,8
@@
static int count_bound_keys(int dev_id, int action_mask, int player_idx)
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
for (k = 0; k < count; k++)
\r
{
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
for (k = 0; k < count; k++)
\r
{
\r
- if (!(binds[k] & action_mask))
\r
- continue;
\r
-
\r
- if (player_idx >= 0 && ((binds[k] >> 16) & 3) != player_idx)
\r
- continue;
\r
-
\r
- keys++;
\r
+ if (binds[IN_BIND_OFFS(k, bindtype)] & action_mask)
\r
+ keys++;
\r
}
\r
\r
return keys;
\r
}
\r
\r
return keys;
\r
@@
-1191,7
+1198,8
@@
static void draw_key_config(const me_bind_action *opts, int opt_cnt, int player_
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_idx)
\r
{
\r
int i, sel = 0, menu_sel_max = opt_cnt - 1;
\r
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_idx)
\r
{
\r
int i, sel = 0, menu_sel_max = opt_cnt - 1;
\r
- int dev_id, dev_count, kc, is_down, mkey, unbind;
\r
+ int dev_id, dev_count, kc, is_down, mkey;
\r
+ int unbind, bindtype, mask;
\r
\r
for (i = 0, dev_id = -1, dev_count = 0; i < IN_MAX_DEVS; i++) {
\r
if (in_get_dev_name(i, 1, 0) != NULL) {
\r
\r
for (i = 0, dev_id = -1, dev_count = 0; i < IN_MAX_DEVS; i++) {
\r
if (in_get_dev_name(i, 1, 0) != NULL) {
\r
@@
-1244,19
+1252,20
@@
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_
for (is_down = 1; is_down; )
\r
kc = in_update_keycode(&dev_id, &is_down, -1);
\r
\r
for (is_down = 1; is_down; )
\r
kc = in_update_keycode(&dev_id, &is_down, -1);
\r
\r
- i = count_bound_keys(dev_id, opts[sel].mask, player_idx);
\r
+ bindtype = player_idx >= 0 ? IN_BINDTYPE_PLAYER12 : IN_BINDTYPE_EMU;
\r
+ mask = opts[sel].mask;
\r
+ if (player_idx == 1)
\r
+ mask <<= 16;
\r
+
\r
+ i = count_bound_keys(dev_id, mask, bindtype);
\r
unbind = (i > 0);
\r
\r
/* allow combos if device supports them */
\r
unbind = (i > 0);
\r
\r
/* allow combos if device supports them */
\r
- if (i == 1 && in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS))
\r
+ if (i == 1 && bindtype == IN_BINDTYPE_EMU &&
\r
+ in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS))
\r
unbind = 0;
\r
\r
unbind = 0;
\r
\r
- in_bind_key(dev_id, kc, opts[sel].mask, unbind);
\r
- if (player_idx >= 0) {
\r
- /* FIXME */
\r
- in_bind_key(dev_id, kc, 3 << 16, 1);
\r
- in_bind_key(dev_id, kc, player_idx << 16, 0);
\r
- }
\r
+ in_bind_key(dev_id, kc, bindtype, mask, unbind);
\r
}
\r
}
\r
\r
}
\r
}
\r
\r
@@
-1280,10
+1289,6
@@
me_bind_action me_ctrl_actions[15] =
{ "Z ", 0x0100 }
\r
};
\r
\r
{ "Z ", 0x0100 }
\r
};
\r
\r
-// player2_flag, reserved, ?, ?,
\r
-// ?, ?, fast forward, menu
\r
-// "NEXT SAVE SLOT", "PREV SAVE SLOT", "SWITCH RENDERER", "SAVE STATE",
\r
-// "LOAD STATE", "VOLUME UP", "VOLUME DOWN", "DONE"
\r
me_bind_action emuctrl_actions[] =
\r
{
\r
{ "Load State ", PEV_STATE_LOAD },
\r
me_bind_action emuctrl_actions[] =
\r
{
\r
{ "Load State ", PEV_STATE_LOAD },
\r
@@
-1418,7
+1423,7
@@
static int menu_loop_cd_options(menu_id id, int keys)
\r
static menu_entry e_menu_adv_options[] =
\r
{
\r
\r
static menu_entry e_menu_adv_options[] =
\r
{
\r
- mee_onoff ("SRAM/BRAM saves", MA_OPT_SRAM_STATES, currentConfig.EmuOpt, EOPT_
USE
_SRAM),
\r
+ mee_onoff ("SRAM/BRAM saves", MA_OPT_SRAM_STATES, currentConfig.EmuOpt, EOPT_
EN
_SRAM),
\r
mee_onoff ("Disable sprite limit", MA_OPT2_NO_SPRITE_LIM, PicoOpt, POPT_DIS_SPRITE_LIM),
\r
mee_onoff ("Use second CPU for sound", MA_OPT_ARM940_SOUND, PicoOpt, POPT_EXT_FM),
\r
mee_onoff ("Emulate Z80", MA_OPT2_ENABLE_Z80, PicoOpt, POPT_EN_Z80),
\r
mee_onoff ("Disable sprite limit", MA_OPT2_NO_SPRITE_LIM, PicoOpt, POPT_DIS_SPRITE_LIM),
\r
mee_onoff ("Use second CPU for sound", MA_OPT_ARM940_SOUND, PicoOpt, POPT_EXT_FM),
\r
mee_onoff ("Emulate Z80", MA_OPT2_ENABLE_Z80, PicoOpt, POPT_EN_Z80),
\r
@@
-1587,14
+1592,14
@@
static int mh_saveloadcfg(menu_id id, int keys)
switch (id) {
\r
case MA_OPT_SAVECFG:
\r
case MA_OPT_SAVECFG_GAME:
\r
switch (id) {
\r
case MA_OPT_SAVECFG:
\r
case MA_OPT_SAVECFG_GAME:
\r
- if (emu_
WriteC
onfig(id == MA_OPT_SAVECFG_GAME ? 1 : 0))
\r
+ if (emu_
write_c
onfig(id == MA_OPT_SAVECFG_GAME ? 1 : 0))
\r
me_update_msg("config saved");
\r
else
\r
me_update_msg("failed to write config");
\r
break;
\r
case MA_OPT_LOADCFG:
\r
me_update_msg("config saved");
\r
else
\r
me_update_msg("failed to write config");
\r
break;
\r
case MA_OPT_LOADCFG:
\r
- ret = emu_
ReadC
onfig(1, 1);
\r
- if (!ret) ret = emu_
ReadC
onfig(0, 1);
\r
+ ret = emu_
read_c
onfig(1, 1);
\r
+ if (!ret) ret = emu_
read_c
onfig(0, 1);
\r
if (ret) me_update_msg("config loaded");
\r
else me_update_msg("failed to load config");
\r
break;
\r
if (ret) me_update_msg("config loaded");
\r
else me_update_msg("failed to load config");
\r
break;
\r
@@
-1985,7
+1990,7
@@
static int mh_tray_load_cd(menu_id id, int keys)
if (ret_name == NULL)
\r
return 0;
\r
\r
if (ret_name == NULL)
\r
return 0;
\r
\r
- cd_type = emu_cd
C
heck(NULL, ret_name);
\r
+ cd_type = emu_cd
_c
heck(NULL, ret_name);
\r
if (cd_type != CIT_NOT_CD)
\r
ret = Insert_CD(ret_name, cd_type);
\r
if (ret != 0) {
\r
if (cd_type != CIT_NOT_CD)
\r
ret = Insert_CD(ret_name, cd_type);
\r
if (ret != 0) {
\r