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 {
|
typedef struct OptionOverride {
|
||||||
char* key;
|
char* key;
|
||||||
char* value;
|
char* value;
|
||||||
int disable; // TODO: hide option from user
|
int lock; // TODO: prevent changing this value
|
||||||
} OptionOverride;
|
} OptionOverride;
|
||||||
|
|
||||||
typedef struct ButtonMapping {
|
typedef struct ButtonMapping {
|
||||||
char* name;
|
char* name;
|
||||||
int retro;
|
int retro;
|
||||||
int local;
|
int local; // TODO: dislike this name...
|
||||||
|
int mod;
|
||||||
|
int default_;
|
||||||
} ButtonMapping;
|
} ButtonMapping;
|
||||||
|
|
||||||
typedef struct CoreOverrides {
|
typedef struct CoreOverrides {
|
||||||
|
|
|
||||||
|
|
@ -9,19 +9,19 @@ static CoreOverrides fceumm_overrides = {
|
||||||
{NULL,NULL},
|
{NULL,NULL},
|
||||||
},
|
},
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||||
{"CHANGE DISK", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
{"Change Disk", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||||
{"INSERT DISK", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
{"Insert Disk", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||||
{"INSERT COIN", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_NONE},
|
{"Insert Coin", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_NONE},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,18 @@ CoreOverrides gambatte_overrides = {
|
||||||
{NULL,NULL},
|
{NULL,NULL},
|
||||||
},
|
},
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||||
{"PREV PAL", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
{"Prev. Palette", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_NONE},
|
||||||
{"NEXT PAL", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
{"Next Palette", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_NONE},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -7,18 +7,18 @@ static CoreOverrides gpsp_overrides = {
|
||||||
{NULL,NULL},
|
{NULL,NULL},
|
||||||
},
|
},
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"A TURBO", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
{"A Turbo", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_NONE},
|
||||||
{"B TURBO", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
{"B Turbo", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_NONE},
|
||||||
{"L BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
{"L Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||||
{"R BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
{"R Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -3,20 +3,20 @@
|
||||||
static CoreOverrides pcsx_rearmed_overrides = {
|
static CoreOverrides pcsx_rearmed_overrides = {
|
||||||
.core_name = "pcsx_rearmed",
|
.core_name = "pcsx_rearmed",
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"CIRCLE", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"Circle", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"CROSS", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"Cross", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"TRIANGLE", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
{"Triangle", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||||
{"SQUARE", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
{"Square", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||||
{"L1 BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
{"L1 Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||||
{"R1 BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
{"R1 Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||||
{"L2 BUTTON", RETRO_DEVICE_ID_JOYPAD_L2, BTN_ID_L2},
|
{"L2 Button", RETRO_DEVICE_ID_JOYPAD_L2, BTN_ID_L2},
|
||||||
{"R2 BUTTON", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_R2},
|
{"R2 Button", RETRO_DEVICE_ID_JOYPAD_R2, BTN_ID_R2},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -7,18 +7,18 @@ static CoreOverrides picodrive_overrides = {
|
||||||
{NULL,NULL},
|
{NULL,NULL},
|
||||||
},
|
},
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"MODE", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Mode", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_X},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_X},
|
||||||
{"C BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"C Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"X BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_B},
|
{"X Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_B},
|
||||||
{"Y BUTTON", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_L1},
|
{"Y Button", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_L1},
|
||||||
{"Z BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
{"Z Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -11,15 +11,15 @@ static CoreOverrides pokemini_overrides = {
|
||||||
{NULL,NULL},
|
{NULL,NULL},
|
||||||
},
|
},
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"C BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
{"C Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||||
{"SHAKE", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
{"Shake", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||||
{"POWER", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Power", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -3,18 +3,18 @@
|
||||||
static CoreOverrides snes9x2005_plus_overrides = {
|
static CoreOverrides snes9x2005_plus_overrides = {
|
||||||
.core_name = "snes9x2005_plus",
|
.core_name = "snes9x2005_plus",
|
||||||
.button_mapping = (ButtonMapping[]){
|
.button_mapping = (ButtonMapping[]){
|
||||||
{"UP", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
{"Up", RETRO_DEVICE_ID_JOYPAD_UP, BTN_ID_UP},
|
||||||
{"DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
{"Down", RETRO_DEVICE_ID_JOYPAD_DOWN, BTN_ID_DOWN},
|
||||||
{"LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
{"Left", RETRO_DEVICE_ID_JOYPAD_LEFT, BTN_ID_LEFT},
|
||||||
{"RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
{"Right", RETRO_DEVICE_ID_JOYPAD_RIGHT, BTN_ID_RIGHT},
|
||||||
{"SELECT", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
{"Select", RETRO_DEVICE_ID_JOYPAD_SELECT, BTN_ID_SELECT},
|
||||||
{"START", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
{"Start", RETRO_DEVICE_ID_JOYPAD_START, BTN_ID_START},
|
||||||
{"Y BUTTON", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
{"Y Button", RETRO_DEVICE_ID_JOYPAD_Y, BTN_ID_Y},
|
||||||
{"X BUTTON", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
{"X Button", RETRO_DEVICE_ID_JOYPAD_X, BTN_ID_X},
|
||||||
{"B BUTTON", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
{"B Button", RETRO_DEVICE_ID_JOYPAD_B, BTN_ID_B},
|
||||||
{"A BUTTON", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
{"A Button", RETRO_DEVICE_ID_JOYPAD_A, BTN_ID_A},
|
||||||
{"L BUTTON", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
{"L Button", RETRO_DEVICE_ID_JOYPAD_L, BTN_ID_L1},
|
||||||
{"R BUTTON", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
{"R Button", RETRO_DEVICE_ID_JOYPAD_R, BTN_ID_R1},
|
||||||
{NULL,0,0},
|
{NULL,0,0},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue