implemented save/load config
also big refactor of config (options and button mappings) management
This commit is contained in:
parent
3d24d19659
commit
515aa13b60
10 changed files with 904 additions and 591 deletions
1231
src/minarch/main.c
1231
src/minarch/main.c
File diff suppressed because it is too large
Load diff
|
|
@ -4,13 +4,15 @@
|
|||
typedef struct OptionOverride {
|
||||
char* key;
|
||||
char* value;
|
||||
int disable; // TODO: hide option from user
|
||||
int lock; // TODO: prevent changing this value
|
||||
} OptionOverride;
|
||||
|
||||
typedef struct ButtonMapping {
|
||||
char* name;
|
||||
int retro;
|
||||
int local;
|
||||
int local; // TODO: dislike this name...
|
||||
int mod;
|
||||
int default_;
|
||||
} ButtonMapping;
|
||||
|
||||
typedef struct CoreOverrides {
|
||||
|
|
|
|||
|
|
@ -9,19 +9,19 @@ static CoreOverrides fceumm_overrides = {
|
|||
{NULL,NULL},
|
||||
},
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"CHANGE DISK", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||
{"INSERT DISK", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||
{"INSERT COIN", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_NONE},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"Change Disk", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||
{"Insert Disk", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||
{"Insert Coin", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_NONE},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,18 +10,18 @@ CoreOverrides gambatte_overrides = {
|
|||
{NULL,NULL},
|
||||
},
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"PREV PAL", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||
{"NEXT PAL", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"Prev. Palette", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||
{"Next Palette", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
@ -7,18 +7,18 @@ static CoreOverrides gpsp_overrides = {
|
|||
{NULL,NULL},
|
||||
},
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"L BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||
{"L Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
@ -3,20 +3,20 @@
|
|||
static CoreOverrides pcsx_rearmed_overrides = {
|
||||
.core_name = "pcsx_rearmed",
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"CIRCLE", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"CROSS", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"TRIANGLE", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||
{"SQUARE", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"L1 BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R1 BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"L2 BUTTON", RETRO_DEVICE_ID_JOYPAD_L2, BTN_ID_L2},
|
||||
{"R2 BUTTON", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_R2},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"Circle", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"Cross", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"Triangle", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||
{"Square", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"L1 Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R1 Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"L2 Button", RETRO_DEVICE_ID_JOYPAD_L2, BTN_ID_L2},
|
||||
{"R2 Button", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_R2},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
@ -7,18 +7,18 @@ static CoreOverrides picodrive_overrides = {
|
|||
{NULL,NULL},
|
||||
},
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"MODE", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_X},
|
||||
{"C BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"X BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_B},
|
||||
{"Y BUTTON", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_L1},
|
||||
{"Z BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Mode", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_X},
|
||||
{"C Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"X Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_B},
|
||||
{"Y Button", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_L1},
|
||||
{"Z Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
@ -11,15 +11,15 @@ static CoreOverrides pokemini_overrides = {
|
|||
{NULL,NULL},
|
||||
},
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"C BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"SHAKE", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"POWER", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"C Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"Shake", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"Power", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
|
|
@ -3,18 +3,18 @@
|
|||
static CoreOverrides snes9x2005_plus_overrides = {
|
||||
.core_name = "snes9x2005_plus",
|
||||
.button_mapping = (ButtonMapping[]){
|
||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"Y BUTTON", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"X BUTTON", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"L BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||
{"Y Button", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||
{"X Button", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||
{"L Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||
{"R Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||
{NULL,0,0},
|
||||
},
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue