# gpSP game settings database
# This file is meant to be edited in plain text, with a normal editor.
# game_name, game_code, and vender_code can be found in the game's header.
# All three must match for the game to be used, and those setting must be in
# that order. Be sure to use [!] ROMs (verified by GoodGBA) when building
# this list. Right now I don't know how much overlap there is between
# different region games.

# Find the game identification values by opening the ROM in a hex editor
# and looking at the following locations:

# 0xA0: name, 12 characters
# 0xAC: code, 4 characters
# 0xB0: vender, 2 characters

# Many games should run okay with nothing here, but those that have idle
# loops will run very slowly. To eliminate idle loops you must find a
# branch instruction that will result in a loop until something in the
# hardware changes, like vsync flagging or an interrupt going off. Then
# set "idle_loop_eliminate_target" to the location of that branch
# instruction.

# By default "iwram_stack_optimize" is set to yes, but this breaks some
# games (like Kirby: Nightmare in Dreamland). If a game doesn't work you
# can try setting it to no.

# Everything here is case sensitive. Don't mess with this file unless
# you know what you're doing - if in doubt sooner ask someone who does.

# I mainly focus on USA versions, so try those first. And, just because
# a game is on here doesn't mean the game actually works in the current
# version. :/

# Castlevania: Circle of the Moon (U)
game_name = DRACULA AGB1
game_code = AAME
vender_code = A4
idle_loop_eliminate_target = 080003d2

# Megaman Battle Network (U)
game_name = MEGAMAN_BN
game_code = AREE
vender_code = 08
idle_loop_eliminate_target = 08000338

# Megaman Zero (U/E)
game_name = MEGAMAN ZERO
game_code = AZCE
vender_code = 08
idle_loop_eliminate_target = 080004ee

# Megaman Zero 2 (U)
game_name = MEGAMANZERO2
game_code = A62E
vender_code = 08
idle_loop_eliminate_target = 08000664

# Megaman Zero 3 (U)
game_name = MEGAMANZERO3
game_code = BZ3E
vender_code = 08
idle_loop_eliminate_target = 08001a08

# Megaman Zero 4 (U)
game_name = MEGAMANZERO4
game_code = B4ZP
vender_code = 08
idle_loop_eliminate_target = 0800090c

# Kirby: Nightmare in Dreamland (U)
game_name = AGB KIRBY DX
game_code = A7KE
vender_code = 01
idle_loop_eliminate_target = 08000fae
iwram_stack_optimize = no

# Super Mario Advance (U)
game_name = SUPER MARIOA
game_code = AMZE
vender_code = 01
idle_loop_eliminate_target = 08001cf2

# Super Mario Advance 2 (U)
game_name = SUPER MARIOB
game_code = AA2E
vender_code = 01
idle_loop_eliminate_target = 08000354

# Super Mario Advance 3 (U)
game_name = SUPER MARIOC
game_code = A3AE
vender_code = 01
idle_loop_eliminate_target = 08002ba4

# Super Mario Advance 4 (U)
game_name = SUPER MARIOD
game_code = AX4E
vender_code = 01
idle_loop_eliminate_target = 08000732

# 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 (U)
# I don't know why this has an idle loop when Ruby doesn't....
game_name = POKEMON EMER
game_code = BPEE
vender_code = 01
idle_loop_eliminate_target = 080008ce

# V-Rally 3 (E)
game_name = V-RALLY 3
game_code = AVRP
vender_code = 70
idle_loop_eliminate_target = 08000920

# Mario Vs Donkey Kong (U)
game_name = MARIOVSDK
game_code = BM5E
vender_code = 01
idle_loop_eliminate_target = 08033eec

# Pokemon: Fire Red (U)
game_name = POKEMON FIRE
game_code = BPRE
vender_code = 01
idle_loop_eliminate_target = 080008b2
# If you have the European version try this instead.
#idle_loop_eliminate_target = 080008c6

# Pokemon: Leaf Green(U)
# Hey, this one is the same as Fire Red, who'd have thought? :B
game_name = POKEMON LEAF
game_code = BPGE
vender_code = 01
idle_loop_eliminate_target = 080008b2
# If you have the European version try this instead.
#idle_loop_eliminate_target = 080008c6
