Start adding gbaover - unfinished

This commit is contained in:
twinaphex 2014-12-21 06:29:16 +01:00
parent d10c4afea2
commit cc1a867328
2 changed files with 659 additions and 140 deletions

View File

@ -65,37 +65,116 @@
# bios_rom_hack_2C - like the above but allows Rayman Advance to work.
# Castlevania: Circle of the Moon (E)
game_name = DRACULA AGB1
game_code = AAMP
vender_code = A4
idle_loop_eliminate_target = 080003d2
# [!] - covered in gbaover
# Castlevania: Circle of the Moon (U)
game_name = DRACULA AGB1
game_code = AAME
vender_code = A4
idle_loop_eliminate_target = 080003d2
# 007 - Nightfire (U) [!]
game_name = NIGHTFIRE
game_code = A7OE
vender_code = 69
idle_loop_eliminate_target = 080031d6
# Megaman Battle Network (E)
game_name = MEGAMANEXEBN
game_code = AREP
vender_code = 08
idle_loop_eliminate_target = 08000338
# Advance Wars (E) [!]
# This one was really annoying to find, I hope it's okay.. there
# might be a better one somewhere.
game_name = ADVANCEWARSP
game_code = AWRP
vender_code = 01
idle_loop_eliminate_target = 0803880a
# Megaman Battle Network (U)
game_name = MEGAMAN_BN
game_code = AREE
vender_code = 08
idle_loop_eliminate_target = 08000338
# Advance Wars (U) [!]
# This one was really annoying to find, I hope it's okay.. there
# might be a better one somewhere.
game_name = ADVANCEWARS
game_code = AWRE
vender_code = 01
idle_loop_eliminate_target = 0803880a
# Battle Network RockMan EXE (J)
# Advance Wars 2 - Black Hole Rising (E) [!]
game_name = ADVANCEWARS2
game_code = AW2P
vender_code = 01
idle_loop_eliminate_target = 080371be
# Advance Wars 2: Black Hole Rising (U) [!]
game_name = ADVANCEWARS2
game_code = AW2E
vender_code = 01
idle_loop_eliminate_target = 08036e2a
# Battle Network RockMan EXE (J) [!]
game_name = ROCKMAN_EXE
game_code = AREJ
vender_code = 08
idle_loop_eliminate_target = 08000338
# Megaman Battle Network 2 (U)
# Bomberman Tournament (U) [!]
game_name = BOMSTORYUSA
game_code = ABSE
vender_code = 52
idle_loop_eliminate_target = 08000526
# Bookworm (U) [!]
game_name = BOOKWORM
game_code = BKWE
vender_code = 5G
idle_loop_eliminate_target = 0800397c
# Broken Sword - The Shadow of the Templars (U) [!]
game_name = BROKENSWORD
game_code = ABJE
vender_code = 6L
idle_loop_eliminate_target = 08000a26
# Castlevania: Circle of the Moon (E) [!]
game_name = DRACULA AGB1
game_code = AAMP
vender_code = A4
idle_loop_eliminate_target = 080003d2
# Castlevania: Circle of the Moon (U) [!]
game_name = DRACULA AGB1
game_code = AAME
vender_code = A4
idle_loop_eliminate_target = 080003d2
# Disney's Aladdin (J) [!]
game_name = ALADDIN
game_code = AJ6J
vender_code = 08
iwram_stack_optimize = no
# Disney's Aladdin (E) [!]
game_name = ALADDIN
game_code = BADP
vender_code = 08
iwram_stack_optimize = no
# Disney's Aladdin (U) [!]
game_name = ALADDIN
game_code = BADE
vender_code = 08
iwram_stack_optimize = no
# Drill Dozer (U) [!]
game_name = DRILL DOZER
game_code = V49E
vender_code = 01
idle_loop_eliminate_target = 080006c2
# Megaman Battle Network (E) [!]
game_name = MEGAMANEXEBN
game_code = AREP
vender_code = 08
idle_loop_eliminate_target = 08000338
# Megaman Battle Network (U) [!]
game_name = MEGAMAN_BN
game_code = AREE
vender_code = 08
idle_loop_eliminate_target = 08000338
# Megaman Battle Network 2 (U) [!]
game_name = MEGAMAN_EXE2
game_code = AE2E
vender_code = 08
@ -200,7 +279,7 @@ game_code = AMZE
vender_code = 01
idle_loop_eliminate_target = 08001cf2
# Super Mario Advance (E/U)
# Super Mario Advance (E/U) [!]
game_name = SUPER MARIOA
game_code = AMAE
vender_code = 01
@ -230,42 +309,27 @@ game_code = A3AE
vender_code = 01
idle_loop_eliminate_target = 08002ba4
# Super Mario Advance 4 (U)
# Super Mario Advance 4 (U) [!]
game_name = SUPER MARIOD
game_code = AX4E
vender_code = 01
idle_loop_eliminate_target = 08000732
flash_rom_type = 128KB
# Super Mario Advance 4 (J)
# Super Mario Advance 4 (J) [!]
game_name = SUPER MARIOD
game_code = AX4J
vender_code = 01
idle_loop_eliminate_target = 08000732
flash_rom_type = 128KB
# Super Mario Advance 4 (E)
# Super Mario Advance 4 (E) [!]
game_name = SUPER MARIOD
game_code = AX4P
vender_code = 01
idle_loop_eliminate_target = 08000732
flash_rom_type = 128KB
# Advance Wars (E)
# This one was really annoying to find, I hope it's okay.. there
# might be a better one somewhere.
game_name = ADVANCEWARSP
game_code = AWRP
vender_code = 01
idle_loop_eliminate_target = 0803880a
# Advance Wars (U)
# This one was really annoying to find, I hope it's okay.. there
# might be a better one somewhere.
game_name = ADVANCEWARS
game_code = AWRE
vender_code = 01
idle_loop_eliminate_target = 0803880a
# Pokemon Emerald (E/U)
# I don't know why this has an idle loop when Ruby doesn't....
@ -382,11 +446,6 @@ game_code = AXVF
vender_code = 01
flash_rom_type = 128KB
# V-Rally 3 (E)
game_name = V-RALLY 3
game_code = AVRP
vender_code = 70
idle_loop_eliminate_target = 080aa920
# Mario Vs Donkey Kong (U)
game_name = MARIOVSDK
@ -541,7 +600,7 @@ translation_gate_target = 03000820
translation_gate_target = 030009ac
translation_gate_target = 03007dac
# Golden Sun: The Lost Age (U)
# Golden Sun: The Lost Age (U) [!]
# Probably the most horrifically coded GBA game in existence.
game_name = GOLDEN_SUN_B
game_code = AGFE
@ -664,23 +723,6 @@ game_code = AN8P
vender_code = 01
iwram_stack_optimize = no
# Advance Wars 2: Black Hole Rising (U)
game_name = ADVANCEWARS2
game_code = AW2E
vender_code = 01
idle_loop_eliminate_target = 08036e2a
# Bomberman Tournament (U)
game_name = BOMSTORYUSA
game_code = ABSE
vender_code = 52
idle_loop_eliminate_target = 08000526
# Broken Sword - The Shadow of the Templars (U)
game_name = BROKENSWORD
game_code = ABJE
vender_code = 6L
idle_loop_eliminate_target = 08000a26
# Defender of The Crown (U)
game_name = DOTC
@ -688,11 +730,6 @@ game_code = ADHE
vender_code = 5N
idle_loop_eliminate_target = 080007ec
# Drill Dozer (U)
game_name = DRILL DOZER
game_code = V49E
vender_code = 01
idle_loop_eliminate_target = 080006c2
# F-Zero for Game Boy Advance (J)
game_name = F-ZERO ADVAN
@ -814,11 +851,6 @@ game_code = AYWE
vender_code = A4
idle_loop_eliminate_target = 08089792
# Wario Ware, Inc. Mega Microgames (U)
game_name = WARIOWAREINC
game_code = AZWE
vender_code = 01
idle_loop_eliminate_target = 08000f66
# Tom Clancy's Splinter Cell (U)
game_name = SPLINTERCELL
@ -905,29 +937,9 @@ game_code = BTJE
vender_code = 4Z
idle_loop_eliminate_target = 080009a4
# Virtual Kasparov (U)
game_name = VIRTKASPAROV
game_code = AVKE
vender_code = 60
idle_loop_eliminate_target = 0800093a
# Advance Wars 2 - Black Hole Rising (E)
game_name = ADVANCEWARS2
game_code = AW2P
vender_code = 01
idle_loop_eliminate_target = 080371be
# Bookworm (U)
game_name = BOOKWORM
game_code = BKWE
vender_code = 5G
idle_loop_eliminate_target = 0800397c
# 007 - Nightfire (U)
game_name = NIGHTFIRE
game_code = A7OE
vender_code = 69
idle_loop_eliminate_target = 080031d6
# Asterix & Obelix XXL (E)
game_name = ASTERIX
@ -935,7 +947,6 @@ game_code = BLXP
vender_code = 70
idle_loop_eliminate_target = 0846d060
# Was this game released in Japan? What as?
# Ninja Five-0 (U)
game_name = NINJA FIVE 0
game_code = ANXE
@ -1029,126 +1040,98 @@ vender_code = 00
translation_gate_target = 03000f1c
# J.LEAGUE プロサッカークラブをつくろう!アドバンス (J)
# J League Pro Soccer Club wo Tsukurou Advance (J)
game_name = SAKATUKUADV
game_code = AC2J
vender_code = 8P
iwram_stack_optimize = no
# アニマル横町 どきどき進級試験!の巻 (J)
# Animal Yokochou Dokidoki Shinkyuu Shiken (J)
game_name = ANIYOKO2
game_code = BAXJ
vender_code = A4
iwram_stack_optimize = no
# アラジン (J)
# Disney's Aladdin (J)
game_name = ALADDIN
game_code = AJ6J
vender_code = 08
iwram_stack_optimize = no
# うえきの法則 神器炸裂!能力者バトル (J)
# Ueki no Housoku Jingi Sakuretsu! Nouryokusya Battle (J)
game_name = UEKIJINGIBTL
game_code = BUHJ
vender_code = D9
iwram_stack_optimize = no
# オリエンタルブルー 青の天外 (J)
# Oriental Blue - Ao no Tengai (J)
game_name = ORIENTALBLUE
game_code = AORJ
vender_code = 01
iwram_stack_optimize = no
# カルチョビット (J)
# Calciobit (J)
game_name = CALCIOBIT01
game_code = BIXJ
vender_code = 01
flash_rom_type = 128KB
# ゲームボーイウォーズアドバンス1+2 (J)
# Game Boy Wars Advance 1+2 (J)
game_name = GBWARS1+2
game_code = BGWJ
vender_code = 01
flash_rom_type = 128KB
# こいぬちゃんのはじめてのおさんぽ (J)
# Koinu-Chan no Hajimete no Osanpo (J)
game_name = OSANPO
game_code = BISJ
vender_code = 1Q
iwram_stack_optimize = no
# チキン・リトル (J)
# Chicken Little (J)
game_name = CLITTLEJ
game_code = BCHJ
vender_code = G9
iwram_stack_optimize = no
# とっとこハム太郎 ハムハムスポーツ (JU)
# Tottoko Hamutaro Hamuhamu Sports (JU)
game_name = HAMSPORTS
game_code = B85A
vender_code = 01
iwram_stack_optimize = no
# 西原理恵子の殿堂麻雀 (J)
# Nishihara Rieko no Dendou Mahjong (J)
game_name = DENDOHMAJANG
game_code = ASMJ
vender_code = AG
iwram_stack_optimize = no
# ボンバーマンジェッターズ ゲームコレクション (J)
# Bomberman Jetters Game Collection (J)
game_name = BOMBERMANJGC
game_code = BOMJ
vender_code = 18
iwram_stack_optimize = no
# ポケットモンスター リーフグリーン (J)
# Pokemon Leaf Green (J)
game_name = POKEMON LEAF
game_code = BPGJ
vender_code = 01
flash_rom_type = 128KB
# マジカル封神 (J)
# Magical Houshin (J)
game_name = M HOUSHIN
game_code = AJOJ
vender_code = C8
iwram_stack_optimize = no
# メダル オブ オナー (J)
# Medal of Honor (J)
game_name = INFILTRATOR
game_code = BMHJ
vender_code = 13
iwram_stack_optimize = no
# ロボットポンコッツ2 クロスバージョン (J)
# Robot Ponkotto 2 - Cross Version (J)
game_name = ROBOPON2CROS
game_code = ACVJ
vender_code = 18
iwram_stack_optimize = no
# ロボットポンコッツ2 リングバージョン (J)
# Robot Ponkotto 2 - Ring Version (J)
game_name = ROBOPON2RING
game_code = ARPJ
vender_code = 18
iwram_stack_optimize = no
# 桃太郎電鉄G ~ゴールド・デッキを作れ!~ (J)
# Momotarou Densetsu G - Gold Deck wo Tsukure! (J)
game_name = MOMOTETSU-G
game_code = BM2J
@ -1175,14 +1158,26 @@ vender_code = EB
iwram_stack_optimize = no
flash_rom_type = 512KB
# Disney's Aladdin (E)
game_name = ALADDIN
game_code = BADP
vender_code = 08
# Ueki no Housoku Jingi Sakuretsu! Nouryokusya Battle (J) [!]
game_name = UEKIJINGIBTL
game_code = BUHJ
vender_code = D9
iwram_stack_optimize = no
# Disney's Aladdin (U)
game_name = ALADDIN
game_code = BADE
vender_code = 08
iwram_stack_optimize = no
# V-Rally 3 (E)
game_name = V-RALLY 3
game_code = AVRP
vender_code = 70
idle_loop_eliminate_target = 080aa920
# Virtual Kasparov (U)
game_name = VIRTKASPAROV
game_code = AVKE
vender_code = 60
idle_loop_eliminate_target = 0800093a
# Wario Ware, Inc. Mega Microgames (U) [!]
game_name = WARIOWAREINC
game_code = AZWE
vender_code = 01
idle_loop_eliminate_target = 08000f66

View File

@ -2232,6 +2232,529 @@ static s32 parse_config_line(char *current_line, char *current_variable, char *c
return 0;
}
typedef struct
{
char romtitle[256];
char gamepak_title[256];
char gamepak_code[256];
char gamepak_maker[256];
int flash_size;
flash_device_id_type flash_device_id;
int save_type;
int rtc_enabled;
int mirroring_enabled;
int use_bios;
u32 idle_loop_target_pc;
u32 iwram_stack_optimize;
u32 translation_gate_target_1;
u32 translation_gate_target_2;
u32 translation_gate_target_3;
} ini_t;
static const ini_t gbaover[256] = {
{
"007 - Nightfire (U)", /* rom title */
"NIGHTFIRE", /* gamepak_title */
"A7OE", /* gamepak_code */
"69", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x80031d6, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Advance Wars (E)", /* rom title */
"ADVANCEWARSP", /* gamepak_title */
"AWRP", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x803880a, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Advance Wars (U)", /* rom title */
"ADVANCEWARS", /* gamepak_title */
"AWRE", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x803880a, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Advance Wars 2: Black Hole Rising (E)", /* rom title */
"ADVANCEWARS2", /* gamepak_title */
"AW2P", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8036e2a, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Advance Wars 2: Black Hole Rising (U)", /* rom title */
"ADVANCEWARS2", /* gamepak_title */
"AW2E", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8036e2a, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Battle Network RockMan EXE (J)",/* rom title */
"ROCKMAN_EXE", /* gamepak_title */
"AREJ", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000338, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Bomberman Tournament (U)", /* rom title */
"BOMSTORYUSA", /* gamepak_title */
"ABSE", /* gamepak_code */
"52", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000526, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Bookworm (U)", /* rom title */
"BOOKWORM", /* gamepak_title */
"BKWE", /* gamepak_code */
"5G", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x800397c, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Broken Sword - The Shadow of the Templars (U)", /* rom title */
"BROKENSWORD", /* gamepak_title */
"ABJE", /* gamepak_code */
"6L", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000a26, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Castlevania (E)", /* rom title */
"DRACULA AGB1", /* gamepak_title */
"AAMP", /* gamepak_code */
"A4", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x80003d2, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Castlevania Circle Of The Moon (U)",/* rom title */
"DRACULA AGB1", /* gamepak_title */
"AAME", /* gamepak_code */
"A4", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x80003d2, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Disney's Aladdin (J)", /* rom title */
"ALADDIN", /* gamepak_title */
"AJ6J", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0, /* idle_loop_target_pc */
0, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Disney's Aladdin (E)", /* rom title */
"ALADDIN", /* gamepak_title */
"BADP", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0, /* idle_loop_target_pc */
0, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Disney's Aladdin (U)", /* rom title */
"ALADDIN", /* gamepak_title */
"BADE", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0, /* idle_loop_target_pc */
0, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Drill Dozer (U)", /* rom title */
"DRILL DOZER", /* gamepak_title */
"V49E", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x80006c2, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Golden Sun: The Lost Age (U)",/* rom title */
"GOLDEN_SUN_B", /* gamepak_title */
"AGFE", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x08013542, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0x30009ac, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Megaman Battle Network (E)",/* rom title */
"MEGAMANEXEBN", /* gamepak_title */
"AREP", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000338, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Megaman Battle Network (U)",/* rom title */
"MEGAMAN_BN", /* gamepak_title */
"AREE", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000338, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Megaman Battle Network 2 (U)",/* rom title */
"MEGAMAN_EXE2", /* gamepak_title */
"AE2E", /* gamepak_code */
"08", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000358, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Super Mario Advance (E/U)", /* rom title */
"SUPER MARIOA", /* gamepak_title */
"AMAE", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8001cf2, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Super Mario Advance 4 (J)", /* rom title */
"SUPER MARIOD", /* gamepak_title */
"AX4J", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
FLASH_DEVICE_MACRONIX_128KB, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000732, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Super Mario Advance 4 (E)", /* rom title */
"SUPER MARIOD", /* gamepak_title */
"AX4P", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
FLASH_DEVICE_MACRONIX_128KB, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000732, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Super Mario Advance 4 (U)", /* rom title */
"SUPER MARIOD", /* gamepak_title */
"AX4E", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
FLASH_DEVICE_MACRONIX_128KB, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000732, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Ueki no Housoku Jingi Sakuretsu! Nouryokusya Battle (J)", /* rom title */
"UEKIJINGIBTL", /* gamepak_title */
"BUHJ", /* gamepak_code */
"D9", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0, /* idle_loop_target_pc */
0, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
{
"Wario Ware, Inc. Mega Microgames (U)", /* rom title */
"WARIOWAREINC", /* gamepak_title */
"AZWE", /* gamepak_code */
"01", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0x8000f66, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
#if 0
{
"Sample", /* rom title */
"", /* gamepak_title */
"", /* gamepak_code */
"", /* gamepak_maker */
0, /* flash_size */
0, /* flash_device_id */
0, /* save_type */
0, /* rtc_enabled */
0, /* mirroring_enabled */
0, /* use_bios */
0, /* idle_loop_target_pc */
1, /* iwram_stack_optimize */
0, /* translation_gate_target_1 */
0, /* translation_gate_target_2 */
0, /* translation_gate_target_3 */
},
#endif
};
static s32 load_game_config_over(char *gamepak_title, char *gamepak_code, char *gamepak_maker)
{
unsigned i = 0;
for (i = 0; i < 256; i++)
{
if (gbaover[i].romtitle[0] == '\0')
return -1;
printf("romtitle : %s\n", gbaover[i].romtitle);
printf("gamepak title: %s\n", gbaover[i].gamepak_title);
printf("gamepak code : %s\n", gbaover[i].gamepak_code);
printf("gamepak maker: %s\n", gbaover[i].gamepak_maker);
printf("INPUT gamepak title: %s\n", gamepak_title);
printf("INPUT gamepak code : %s\n", gamepak_code);
printf("INPUT gamepak maker: %s\n", gamepak_maker);
if (strcmp(gbaover[i].gamepak_code, gamepak_code))
continue;
if (strcmp(gbaover[i].gamepak_title, gamepak_title))
continue;
if (gbaover[i].idle_loop_target_pc != 0)
idle_loop_target_pc = gbaover[i].idle_loop_target_pc;
iwram_stack_optimize = gbaover[i].iwram_stack_optimize;
flash_device_id = gbaover[i].flash_device_id;
if (gbaover[i].translation_gate_target_1 != 0)
{
translation_gate_target_pc[translation_gate_targets] = gbaover[i].translation_gate_target_1;
translation_gate_targets++;
}
if (gbaover[i].translation_gate_target_2 != 0)
{
translation_gate_target_pc[translation_gate_targets] = gbaover[i].translation_gate_target_2;
translation_gate_targets++;
}
if (gbaover[i].translation_gate_target_3 != 0)
{
translation_gate_target_pc[translation_gate_targets] = gbaover[i].translation_gate_target_3;
translation_gate_targets++;
}
printf("found entry in over ini file.\n");
return 0;
}
return -1;
}
static s32 load_game_config(char *gamepak_title, char *gamepak_code, char *gamepak_maker)
{
char current_line[256];
@ -2240,13 +2763,6 @@ static s32 load_game_config(char *gamepak_title, char *gamepak_code, char *gamep
char config_path[512];
FILE *config_file;
idle_loop_target_pc = 0xFFFFFFFF;
iwram_stack_optimize = 1;
translation_gate_targets = 0;
bios_rom[0x39] = 0x00;
bios_rom[0x2C] = 0x00;
flash_device_id = FLASH_DEVICE_MACRONIX_64KB;
sprintf(config_path, "%s" PATH_SEPARATOR "%s", main_path, CONFIG_FILENAME);
printf("config_path is : %s\n", config_path);
@ -2412,7 +2928,15 @@ u32 load_gamepak(const struct retro_game_info* info, const char *name)
gamepak_code[4] = 0;
gamepak_maker[2] = 0;
load_game_config(gamepak_title, gamepak_code, gamepak_maker);
idle_loop_target_pc = 0xFFFFFFFF;
iwram_stack_optimize = 1;
translation_gate_targets = 0;
bios_rom[0x39] = 0x00;
bios_rom[0x2C] = 0x00;
flash_device_id = FLASH_DEVICE_MACRONIX_64KB;
if ((load_game_config_over(gamepak_title, gamepak_code, gamepak_maker)) == -1)
load_game_config(gamepak_title, gamepak_code, gamepak_maker);
change_ext(gamepak_filename, cheats_filename, ".cht");
add_cheats(cheats_filename);