Change override structure to not use multi-byte char literals
Jeffrey Pfau jeffrey@endrift.com
Fri, 31 Jan 2014 02:05:01 -0800
1 files changed,
44 insertions(+),
44 deletions(-)
jump to
M
src/gba/gba.c
→
src/gba/gba.c
@@ -22,75 +22,75 @@ SP_BASE_SUPERVISOR = 0x03FFFFE0
}; struct GBACartridgeOverride { - uint32_t id; + const char id[4]; enum SavedataType type; int gpio; }; static const struct GBACartridgeOverride _overrides[] = { // Boktai: The Sun is in Your Hand - { 'EI3U', SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, - { 'PI3U', SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, + { "U3IE", SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, + { "U3IP", SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, // Boktai 2: Solar Boy Django - { 'E23U', SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, - { 'P23U', SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, + { "U32E", SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, + { "U32P", SAVEDATA_EEPROM, GPIO_RTC | GPIO_LIGHT_SENSOR }, // Drill Dozer - { 'J94V', SAVEDATA_SRAM, GPIO_RUMBLE }, - { 'E94V', SAVEDATA_SRAM, GPIO_RUMBLE }, + { "V49J", SAVEDATA_SRAM, GPIO_RUMBLE }, + { "V49E", SAVEDATA_SRAM, GPIO_RUMBLE }, // Pokemon Ruby - { 'JVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'EVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'PVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'IVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'SVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'DVXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'FVXA', SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVJ", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVE", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVP", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVI", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVS", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVD", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXVF", SAVEDATA_FLASH1M, GPIO_RTC }, // Pokemon Sapphire - { 'JPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'EPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'PPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'IPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'SPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'DPXA', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'FPXA', SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPJ", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPE", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPP", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPI", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPS", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPD", SAVEDATA_FLASH1M, GPIO_RTC }, + { "AXPF", SAVEDATA_FLASH1M, GPIO_RTC }, // Pokemon Emerald - { 'JEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'EEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'PEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'IEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'SEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'DEPB', SAVEDATA_FLASH1M, GPIO_RTC }, - { 'FEPB', SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPEJ", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPEE", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPEP", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPEI", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPES", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPED", SAVEDATA_FLASH1M, GPIO_RTC }, + { "BPEF", SAVEDATA_FLASH1M, GPIO_RTC }, // Pokemon FireRed - { 'JRPB', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'ERPB', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'PRPB', SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPRJ", SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPRE", SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPRP", SAVEDATA_FLASH1M, GPIO_NONE }, // Pokemon LeafGreen - { 'JGPB', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'EGPB', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'PGPB', SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPGJ", SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPGE", SAVEDATA_FLASH1M, GPIO_NONE }, + { "BPGP", SAVEDATA_FLASH1M, GPIO_NONE }, // RockMan EXE 4.5 - Real Operation - { 'J4RB', SAVEDATA_FLASH512, GPIO_RTC }, + { "BR4J", SAVEDATA_FLASH512, GPIO_RTC }, // Super Mario Advance 4 - { 'J4XA', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'E4XA', SAVEDATA_FLASH1M, GPIO_NONE }, - { 'P4XA', SAVEDATA_FLASH1M, GPIO_NONE }, + { "AX4J", SAVEDATA_FLASH1M, GPIO_NONE }, + { "AX4E", SAVEDATA_FLASH1M, GPIO_NONE }, + { "AX4P", SAVEDATA_FLASH1M, GPIO_NONE }, // Wario Ware Twisted - { 'JWZR', SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, - { 'EWZR', SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, - { 'PWZR', SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, + { "RWZJ", SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, + { "RWZE", SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, + { "RWZP", SAVEDATA_SRAM, GPIO_RUMBLE | GPIO_GYRO }, - { 0, 0, 0 } + { { 0, 0, 0, 0 }, 0, 0 } }; static void GBAProcessEvents(struct ARMBoard* board);@@ -560,8 +560,8 @@ }
void _checkOverrides(struct GBA* gba, uint32_t id) { int i; - for (i = 0; _overrides[i].id; ++i) { - if (_overrides[i].id == id) { + for (i = 0; _overrides[i].id[0]; ++i) { + if (*(uint32_t*) &_overrides[i].id == id) { switch (_overrides[i].type) { case SAVEDATA_FLASH512: case SAVEDATA_FLASH1M: