summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkipcode66 <kipcode66@gmail.com>2022-07-15 02:54:43 -0400
committerkipcode66 <kipcode66@gmail.com>2022-07-15 02:54:43 -0400
commit51119821813b4244f9738b5e74dd43b574a2c0e4 (patch)
tree188ceb039ad03db97d192c9f3257069d8b5b5bab
parentc094053dd9c6fedb8a2ba92e344ddfc5d5a12b86 (diff)
Adding wii saveswii_saves
-rw-r--r--RomHack-template.toml567
-rw-r--r--external/misc/any.py442
-rwxr-xr-xexternal/misc/toml-inject.sh6
-rw-r--r--include/menus/any_saves_menu.h59
-rw-r--r--res/save_files_wii/any.binbin0 -> 4160 bytes
-rw-r--r--res/save_files_wii/any/ag.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/arealfos.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/argarok.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/bit.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/bombhouse_skip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/boss_bug.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/bublin_camp.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/cits.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/cits_2.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/cits_tower.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/darkhammer.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/darknut.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/death_sword.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/deku_like_skip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/deku_toad.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/diababa.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/early_city.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/early_gale.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/early_platform.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/eldin_twilight.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/ems.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/forest_temple_1.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/goats.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/horseback_ganon.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/hugo.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/hyrule_castle.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/iza.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/jake.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/kargarok_fight.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/kargarok_flight.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/lakebed_1.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/lanayru_gate_clip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/lanayru_twilight.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/mailman_skip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/mdh_bridge.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/mdh_tower.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/midna_dive.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/morpheel.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/ordon_gate_clip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/palace_1.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/palace_2.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/poe_1_skip.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/purple_mist.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/spr.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/spr_boost.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/spr_freezard.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/stallord.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/tower_climb.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/waterfall_sidehop.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/zant.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/zelda_fight.binbin0 -> 2700 bytes
-rw-r--r--res/save_files_wii/any/zora_text_skip.binbin0 -> 2700 bytes
-rw-r--r--src/menus/any_saves_menu.cpp86
58 files changed, 451 insertions, 709 deletions
diff --git a/RomHack-template.toml b/RomHack-template.toml
index 9e45450..50249c2 100644
--- a/RomHack-template.toml
+++ b/RomHack-template.toml
@@ -31,574 +31,19 @@ libs = ["tpgz.a", "external/libtp_c/libtp_c.a", "external/gcn_c/gcn_c.a"]
"tpgz/tex/framePause.tex" = "res/tex/framePause.tex"
# fonts
-"tpgz/fonts/consola.fnt" = "res/fonts/consola.fnt"
-"tpgz/fonts/calamity-bold.fnt" = "res/fonts/calamity-bold.fnt"
-"tpgz/fonts/lib-serif.fnt" = "res/fonts/lib-serif.fnt"
-"tpgz/fonts/lib-serif-bold.fnt" = "res/fonts/lib-serif-bold.fnt"
-"tpgz/fonts/lib-sans.fnt" = "res/fonts/lib-sans.fnt"
-"tpgz/fonts/lib-sans-bold.fnt" = "res/fonts/lib-sans-bold.fnt"
-"tpgz/fonts/press-start-2p.fnt" = "res/fonts/press-start-2p.fnt"
+"tpgz/fonts" = "res/fonts"
# any% saves
-"tpgz/save_files/any.bin" = "res/save_files/any.bin"
-"tpgz/save_files/any/aeralfos_skip.bin" = "res/save_files/any/aeralfos_skip.bin"
-"tpgz/save_files/any/boss_bug.bin" = "res/save_files/any/boss_bug.bin"
-"tpgz/save_files/any/camp.bin" = "res/save_files/any/camp.bin"
-"tpgz/save_files/any/death_sword_skip.bin" = "res/save_files/any/death_sword_skip.bin"
-"tpgz/save_files/any/deku_toad.bin" = "res/save_files/any/deku_toad.bin"
-"tpgz/save_files/any/early_platform.bin" = "res/save_files/any/early_platform.bin"
-"tpgz/save_files/any/fan_tower.bin" = "res/save_files/any/fan_tower.bin"
-"tpgz/save_files/any/forest_bit.bin" = "res/save_files/any/forest_bit.bin"
-"tpgz/save_files/any/goats.bin" = "res/save_files/any/goats.bin"
-"tpgz/save_files/any/gorge_void.bin" = "res/save_files/any/gorge_void.bin"
-"tpgz/save_files/any/hugo.bin" = "res/save_files/any/hugo.bin"
-"tpgz/save_files/any/lakebed_bk_skip.bin" = "res/save_files/any/lakebed_bk_skip.bin"
-"tpgz/save_files/any/mdh_bridge.bin" = "res/save_files/any/mdh_bridge.bin"
-"tpgz/save_files/any/mdh_tower.bin" = "res/save_files/any/mdh_tower.bin"
-"tpgz/save_files/any/norgor.bin" = "res/save_files/any/norgor.bin"
-"tpgz/save_files/any/onebomb.bin" = "res/save_files/any/onebomb.bin"
-"tpgz/save_files/any/pillar_clip.bin" = "res/save_files/any/pillar_clip.bin"
-"tpgz/save_files/any/poe_1_skip.bin" = "res/save_files/any/poe_1_skip.bin"
-"tpgz/save_files/any/stallord.bin" = "res/save_files/any/stallord.bin"
-"tpgz/save_files/any/purple_mist.bin" = "res/save_files/any/purple_mist.bin"
-"tpgz/save_files/any/ordon_gate_clip.bin" = "res/save_files/any/ordon_gate_clip.bin"
-"tpgz/save_files/any/ems.bin" = "res/save_files/any/ems.bin"
-"tpgz/save_files/any/forest_escape.bin" = "res/save_files/any/forest_escape.bin"
-"tpgz/save_files/any/lanayru_gate_clip.bin" = "res/save_files/any/lanayru_gate_clip.bin"
-"tpgz/save_files/any/karg.bin" = "res/save_files/any/karg.bin"
-"tpgz/save_files/any/eldin_twilight.bin" = "res/save_files/any/eldin_twilight.bin"
-"tpgz/save_files/any/iza.bin" = "res/save_files/any/iza.bin"
-"tpgz/save_files/any/spr_warp.bin" = "res/save_files/any/spr_warp.bin"
-"tpgz/save_files/any/spr.bin" = "res/save_files/any/spr.bin"
-"tpgz/save_files/any/lakebed_1.bin" = "res/save_files/any/lakebed_1.bin"
-"tpgz/save_files/any/waterfall_sidehop.bin" = "res/save_files/any/waterfall_sidehop.bin"
-"tpgz/save_files/any/ag.bin" = "res/save_files/any/ag.bin"
-"tpgz/save_files/any/cits_early.bin" = "res/save_files/any/cits_early.bin"
-"tpgz/save_files/any/cits_1.bin" = "res/save_files/any/cits_1.bin"
-"tpgz/save_files/any/cits_2.bin" = "res/save_files/any/cits_2.bin"
-"tpgz/save_files/any/argorok.bin" = "res/save_files/any/argorok.bin"
-"tpgz/save_files/any/palace_1.bin" = "res/save_files/any/palace_1.bin"
-"tpgz/save_files/any/palace_2.bin" = "res/save_files/any/palace_2.bin"
-"tpgz/save_files/any/zant.bin" = "res/save_files/any/zant.bin"
-"tpgz/save_files/any/hc.bin" = "res/save_files/any/hc.bin"
-"tpgz/save_files/any/hc_tower.bin" = "res/save_files/any/hc_tower.bin"
-"tpgz/save_files/any/darknut.bin" = "res/save_files/any/darknut.bin"
-"tpgz/save_files/any/darkhammer.bin" = "res/save_files/any/darkhammer.bin"
-"tpgz/save_files/any/beast_ganon.bin" = "res/save_files/any/beast_ganon.bin"
-"tpgz/save_files/any/horseback_ganon.bin" = "res/save_files/any/horseback_ganon.bin"
-"tpgz/save_files/any/lanayru_twilight.bin" = "res/save_files/any/lanayru_twilight.bin"
-"tpgz/save_files/any/rupee_roll.bin" = "res/save_files/any/rupee_roll.bin"
+"tpgz/save_files/any.bin" = "@savesPath/any.bin"
+"tpgz/save_files/any" = "@savesPath/any"
# 100% saves
"tpgz/save_files/hundo.bin" = "res/save_files/hundo.bin"
-"tpgz/save_files/hundo/aeralfos_skip.bin" = "res/save_files/hundo/aeralfos_skip.bin"
-"tpgz/save_files/hundo/boss_bug.bin" = "res/save_files/hundo/boss_bug.bin"
-"tpgz/save_files/hundo/camp.bin" = "res/save_files/hundo/camp.bin"
-"tpgz/save_files/hundo/death_sword_skip.bin" = "res/save_files/hundo/death_sword_skip.bin"
-"tpgz/save_files/hundo/deku_toad.bin" = "res/save_files/hundo/deku_toad.bin"
-"tpgz/save_files/hundo/early_platform.bin" = "res/save_files/hundo/early_platform.bin"
-"tpgz/save_files/hundo/fan_tower.bin" = "res/save_files/hundo/fan_tower.bin"
-"tpgz/save_files/hundo/faron_twilight.bin" = "res/save_files/hundo/faron_twilight.bin"
-"tpgz/save_files/hundo/forest_bit.bin" = "res/save_files/hundo/forest_bit.bin"
-"tpgz/save_files/hundo/forest_2.bin" = "res/save_files/hundo/forest_2.bin"
-"tpgz/save_files/hundo/goats.bin" = "res/save_files/hundo/goats.bin"
-"tpgz/save_files/hundo/goats_2.bin" = "res/save_files/hundo/goats_2.bin"
-"tpgz/save_files/hundo/lakebed_bk_skip.bin" = "res/save_files/hundo/lakebed_bk_skip.bin"
-"tpgz/save_files/hundo/mdh_bridge.bin" = "res/save_files/hundo/mdh_bridge.bin"
-"tpgz/save_files/hundo/mdh_tower.bin" = "res/save_files/hundo/mdh_tower.bin"
-"tpgz/save_files/hundo/pillar_clip.bin" = "res/save_files/hundo/pillar_clip.bin"
-"tpgz/save_files/hundo/poe_1_skip.bin" = "res/save_files/hundo/poe_1_skip.bin"
-"tpgz/save_files/hundo/stallord.bin" = "res/save_files/hundo/stallord.bin"
-"tpgz/save_files/hundo/purple_mist.bin" = "res/save_files/hundo/purple_mist.bin"
-"tpgz/save_files/hundo/ordon_gate_clip.bin" = "res/save_files/hundo/ordon_gate_clip.bin"
-"tpgz/save_files/hundo/ems.bin" = "res/save_files/hundo/ems.bin"
-"tpgz/save_files/hundo/lanayru_gate_clip.bin" = "res/save_files/hundo/lanayru_gate_clip.bin"
-"tpgz/save_files/hundo/karg.bin" = "res/save_files/hundo/karg.bin"
-"tpgz/save_files/hundo/eldin_twilight.bin" = "res/save_files/hundo/eldin_twilight.bin"
-"tpgz/save_files/hundo/spr.bin" = "res/save_files/hundo/spr.bin"
-"tpgz/save_files/hundo/lakebed_1.bin" = "res/save_files/hundo/lakebed_1.bin"
-"tpgz/save_files/hundo/ag.bin" = "res/save_files/hundo/ag.bin"
-"tpgz/save_files/hundo/cits_1.bin" = "res/save_files/hundo/cits_1.bin"
-"tpgz/save_files/hundo/cits_2.bin" = "res/save_files/hundo/cits_2.bin"
-"tpgz/save_files/hundo/argorok.bin" = "res/save_files/hundo/argorok.bin"
-"tpgz/save_files/hundo/palace_1.bin" = "res/save_files/hundo/palace_1.bin"
-"tpgz/save_files/hundo/palace_2.bin" = "res/save_files/hundo/palace_2.bin"
-"tpgz/save_files/hundo/zant.bin" = "res/save_files/hundo/zant.bin"
-"tpgz/save_files/hundo/hc.bin" = "res/save_files/hundo/hc.bin"
-"tpgz/save_files/hundo/hc_tower.bin" = "res/save_files/hundo/hc_tower.bin"
-"tpgz/save_files/hundo/darkhammer.bin" = "res/save_files/hundo/darkhammer.bin"
-"tpgz/save_files/hundo/beast_ganon.bin" = "res/save_files/hundo/beast_ganon.bin"
-"tpgz/save_files/hundo/horseback_ganon.bin" = "res/save_files/hundo/horseback_ganon.bin"
-"tpgz/save_files/hundo/lanayru_twilight.bin" = "res/save_files/hundo/lanayru_twilight.bin"
-"tpgz/save_files/hundo/ookless.bin" = "res/save_files/hundo/ookless.bin"
-"tpgz/save_files/hundo/kb2.bin" = "res/save_files/hundo/kb2.bin"
-"tpgz/save_files/hundo/corotd.bin" = "res/save_files/hundo/corotd.bin"
-"tpgz/save_files/hundo/gm.bin" = "res/save_files/hundo/gm.bin"
-"tpgz/save_files/hundo/dangoro.bin" = "res/save_files/hundo/dangoro.bin"
-"tpgz/save_files/hundo/kb1.bin" = "res/save_files/hundo/kb1.bin"
-"tpgz/save_files/hundo/morpheel.bin" = "res/save_files/hundo/morpheel.bin"
-"tpgz/save_files/hundo/star_1.bin" = "res/save_files/hundo/star_1.bin"
-"tpgz/save_files/hundo/post_mdh.bin" = "res/save_files/hundo/post_mdh.bin"
-"tpgz/save_files/hundo/iza_1_skip.bin" = "res/save_files/hundo/iza_1_skip.bin"
-"tpgz/save_files/hundo/lh_cave.bin" = "res/save_files/hundo/lh_cave.bin"
-"tpgz/save_files/hundo/post_ag.bin" = "res/save_files/hundo/post_ag.bin"
-"tpgz/save_files/hundo/spr_superjump.bin" = "res/save_files/hundo/spr_superjump.bin"
-"tpgz/save_files/hundo/spr_bk_lja.bin" = "res/save_files/hundo/spr_bk_lja.bin"
-"tpgz/save_files/hundo/blizzeta.bin" = "res/save_files/hundo/blizzeta.bin"
-"tpgz/save_files/hundo/nf_bomb_boost.bin" = "res/save_files/hundo/nf_bomb_boost.bin"
-"tpgz/save_files/hundo/grove_skip.bin" = "res/save_files/hundo/grove_skip.bin"
-"tpgz/save_files/hundo/grove_boost.bin" = "res/save_files/hundo/grove_boost.bin"
-"tpgz/save_files/hundo/tot.bin" = "res/save_files/hundo/tot.bin"
-"tpgz/save_files/hundo/tot_early_poe.bin" = "res/save_files/hundo/tot_early_poe.bin"
-"tpgz/save_files/hundo/tot_statue_throws.bin" = "res/save_files/hundo/tot_statue_throws.bin"
-"tpgz/save_files/hundo/tot_early_hp.bin" = "res/save_files/hundo/tot_early_hp.bin"
-"tpgz/save_files/hundo/tot_darknut.bin" = "res/save_files/hundo/tot_darknut.bin"
-"tpgz/save_files/hundo/dot_skip.bin" = "res/save_files/hundo/dot_skip.bin"
-"tpgz/save_files/hundo/post_tot.bin" = "res/save_files/hundo/post_tot.bin"
-"tpgz/save_files/hundo/hotspring.bin" = "res/save_files/hundo/hotspring.bin"
-"tpgz/save_files/hundo/silver_rupee.bin" = "res/save_files/hundo/silver_rupee.bin"
-"tpgz/save_files/hundo/ice_puzzle.bin" = "res/save_files/hundo/ice_puzzle.bin"
-"tpgz/save_files/hundo/hv_archery.bin" = "res/save_files/hundo/hv_archery.bin"
-"tpgz/save_files/hundo/cits_poe_cycle.bin" = "res/save_files/hundo/cits_poe_cycle.bin"
-"tpgz/save_files/hundo/star_2.bin" = "res/save_files/hundo/star_2.bin"
-"tpgz/save_files/hundo/coo.bin" = "res/save_files/hundo/coo.bin"
-"tpgz/save_files/hundo/coo_10.bin" = "res/save_files/hundo/coo_10.bin"
-"tpgz/save_files/hundo/coo_20.bin" = "res/save_files/hundo/coo_20.bin"
-"tpgz/save_files/hundo/coo_30.bin" = "res/save_files/hundo/coo_30.bin"
-"tpgz/save_files/hundo/cats.bin" = "res/save_files/hundo/cats.bin"
-"tpgz/save_files/hundo/hc_darknut.bin" = "res/save_files/hundo/hc_darknut.bin"
+"tpgz/save_files/hundo" = "res/save_files/hundo"
# All Dungeons saves
"tpgz/save_files/ad.bin" = "res/save_files/ad.bin"
-"tpgz/save_files/ad/ordon_gate_clip.bin" = "res/save_files/ad/ordon_gate_clip.bin"
-"tpgz/save_files/ad/goats.bin" = "res/save_files/ad/goats.bin"
-"tpgz/save_files/ad/hugo.bin" = "res/save_files/ad/hugo.bin"
-"tpgz/save_files/ad/faron_twilight.bin" = "res/save_files/ad/faron_twilight.bin"
-"tpgz/save_files/ad/ems.bin" = "res/save_files/ad/ems.bin"
-"tpgz/save_files/ad/purple_mist.bin" = "res/save_files/ad/purple_mist.bin"
-"tpgz/save_files/ad/kb1.bin" = "res/save_files/ad/kb1.bin"
-"tpgz/save_files/ad/eldin_twilight.bin" = "res/save_files/ad/eldin_twilight.bin"
-"tpgz/save_files/ad/forest.bin" = "res/save_files/ad/forest.bin"
-"tpgz/save_files/ad/diababa.bin" = "res/save_files/ad/diababa.bin"
-"tpgz/save_files/ad/pillar_clip.bin" = "res/save_files/ad/pillar_clip.bin"
-"tpgz/save_files/ad/lakebed1.bin" = "res/save_files/ad/lakebed1.bin"
-"tpgz/save_files/ad/deku_toad.bin" = "res/save_files/ad/deku_toad.bin"
-"tpgz/save_files/ad/lanayru_twilight.bin" = "res/save_files/ad/lanayru_twilight.bin"
-"tpgz/save_files/ad/mountain_umd.bin" = "res/save_files/ad/mountain_umd.bin"
-"tpgz/save_files/ad/spr.bin" = "res/save_files/ad/spr.bin"
-"tpgz/save_files/ad/ice_boost.bin" = "res/save_files/ad/ice_boost.bin"
-"tpgz/save_files/ad/blizzeta.bin" = "res/save_files/ad/blizzeta.bin"
-"tpgz/save_files/ad/gm.bin" = "res/save_files/ad/gm.bin"
-"tpgz/save_files/ad/dangoro.bin" = "res/save_files/ad/dangoro.bin"
-"tpgz/save_files/ad/bk_skip.bin" = "res/save_files/ad/bk_skip.bin"
-"tpgz/save_files/ad/morpheel.bin" = "res/save_files/ad/morpheel.bin"
-"tpgz/save_files/ad/mdh.bin" = "res/save_files/ad/mdh.bin"
-"tpgz/save_files/ad/camp.bin" = "res/save_files/ad/camp.bin"
-"tpgz/save_files/ad/ag.bin" = "res/save_files/ad/ag.bin"
-"tpgz/save_files/ad/poe_skip.bin" = "res/save_files/ad/poe_skip.bin"
-"tpgz/save_files/ad/deathsword.bin" = "res/save_files/ad/deathsword.bin"
-"tpgz/save_files/ad/stallord.bin" = "res/save_files/ad/stallord.bin"
-"tpgz/save_files/ad/faron_boost.bin" = "res/save_files/ad/faron_boost.bin"
-"tpgz/save_files/ad/tot.bin" = "res/save_files/ad/tot.bin"
-"tpgz/save_files/ad/dot_skip.bin" = "res/save_files/ad/dot_skip.bin"
-"tpgz/save_files/ad/silver_rupee.bin" = "res/save_files/ad/silver_rupee.bin"
-"tpgz/save_files/ad/city1.bin" = "res/save_files/ad/city1.bin"
-"tpgz/save_files/ad/aeralfos.bin" = "res/save_files/ad/aeralfos.bin"
-"tpgz/save_files/ad/city2.bin" = "res/save_files/ad/city2.bin"
-"tpgz/save_files/ad/argorok.bin" = "res/save_files/ad/argorok.bin"
-"tpgz/save_files/ad/palace1.bin" = "res/save_files/ad/palace1.bin"
-"tpgz/save_files/ad/palace2.bin" = "res/save_files/ad/palace2.bin"
-"tpgz/save_files/ad/zant.bin" = "res/save_files/ad/zant.bin"
-"tpgz/save_files/ad/hc.bin" = "res/save_files/ad/hc.bin"
-"tpgz/save_files/ad/beast_ganon.bin" = "res/save_files/ad/beast_ganon.bin"
-"tpgz/save_files/ad/horseback.bin" = "res/save_files/ad/horseback.bin"
+"tpgz/save_files/ad" = "res/save_files/ad"
# warp info
-"tpgz/stage_info/cave.bin" = "res/stage_info/cave.bin"
-"tpgz/stage_info/dungeon.bin" = "res/stage_info/dungeon.bin"
-"tpgz/stage_info/interior.bin" = "res/stage_info/interior.bin"
-"tpgz/stage_info/overworld.bin" = "res/stage_info/overworld.bin"
-"tpgz/stage_info/special.bin" = "res/stage_info/special.bin"
-"tpgz/stage_info/D_MN01/rooms.bin" = "res/stage_info/D_MN01/rooms.bin"
-"tpgz/stage_info/D_MN01/00/spawns.bin" = "res/stage_info/D_MN01/00/spawns.bin"
-"tpgz/stage_info/D_MN01/01/spawns.bin" = "res/stage_info/D_MN01/01/spawns.bin"
-"tpgz/stage_info/D_MN01/02/spawns.bin" = "res/stage_info/D_MN01/02/spawns.bin"
-"tpgz/stage_info/D_MN01/03/spawns.bin" = "res/stage_info/D_MN01/03/spawns.bin"
-"tpgz/stage_info/D_MN01/05/spawns.bin" = "res/stage_info/D_MN01/05/spawns.bin"
-"tpgz/stage_info/D_MN01/06/spawns.bin" = "res/stage_info/D_MN01/06/spawns.bin"
-"tpgz/stage_info/D_MN01/07/spawns.bin" = "res/stage_info/D_MN01/07/spawns.bin"
-"tpgz/stage_info/D_MN01/08/spawns.bin" = "res/stage_info/D_MN01/08/spawns.bin"
-"tpgz/stage_info/D_MN01/09/spawns.bin" = "res/stage_info/D_MN01/09/spawns.bin"
-"tpgz/stage_info/D_MN01/10/spawns.bin" = "res/stage_info/D_MN01/10/spawns.bin"
-"tpgz/stage_info/D_MN01/11/spawns.bin" = "res/stage_info/D_MN01/11/spawns.bin"
-"tpgz/stage_info/D_MN01/12/spawns.bin" = "res/stage_info/D_MN01/12/spawns.bin"
-"tpgz/stage_info/D_MN01/13/spawns.bin" = "res/stage_info/D_MN01/13/spawns.bin"
-"tpgz/stage_info/D_MN01A/rooms.bin" = "res/stage_info/D_MN01A/rooms.bin"
-"tpgz/stage_info/D_MN01A/50/spawns.bin" = "res/stage_info/D_MN01A/50/spawns.bin"
-"tpgz/stage_info/D_MN01B/rooms.bin" = "res/stage_info/D_MN01B/rooms.bin"
-"tpgz/stage_info/D_MN01B/51/spawns.bin" = "res/stage_info/D_MN01B/51/spawns.bin"
-"tpgz/stage_info/D_MN04/rooms.bin" = "res/stage_info/D_MN04/rooms.bin"
-"tpgz/stage_info/D_MN04/01/spawns.bin" = "res/stage_info/D_MN04/01/spawns.bin"
-"tpgz/stage_info/D_MN04/03/spawns.bin" = "res/stage_info/D_MN04/03/spawns.bin"
-"tpgz/stage_info/D_MN04/04/spawns.bin" = "res/stage_info/D_MN04/04/spawns.bin"
-"tpgz/stage_info/D_MN04/05/spawns.bin" = "res/stage_info/D_MN04/05/spawns.bin"
-"tpgz/stage_info/D_MN04/06/spawns.bin" = "res/stage_info/D_MN04/06/spawns.bin"
-"tpgz/stage_info/D_MN04/07/spawns.bin" = "res/stage_info/D_MN04/07/spawns.bin"
-"tpgz/stage_info/D_MN04/09/spawns.bin" = "res/stage_info/D_MN04/09/spawns.bin"
-"tpgz/stage_info/D_MN04/11/spawns.bin" = "res/stage_info/D_MN04/11/spawns.bin"
-"tpgz/stage_info/D_MN04/12/spawns.bin" = "res/stage_info/D_MN04/12/spawns.bin"
-"tpgz/stage_info/D_MN04/13/spawns.bin" = "res/stage_info/D_MN04/13/spawns.bin"
-"tpgz/stage_info/D_MN04/14/spawns.bin" = "res/stage_info/D_MN04/14/spawns.bin"
-"tpgz/stage_info/D_MN04/16/spawns.bin" = "res/stage_info/D_MN04/16/spawns.bin"
-"tpgz/stage_info/D_MN04/17/spawns.bin" = "res/stage_info/D_MN04/17/spawns.bin"
-"tpgz/stage_info/D_MN04A/rooms.bin" = "res/stage_info/D_MN04A/rooms.bin"
-"tpgz/stage_info/D_MN04A/50/spawns.bin" = "res/stage_info/D_MN04A/50/spawns.bin"
-"tpgz/stage_info/D_MN04B/rooms.bin" = "res/stage_info/D_MN04B/rooms.bin"
-"tpgz/stage_info/D_MN04B/51/spawns.bin" = "res/stage_info/D_MN04B/51/spawns.bin"
-"tpgz/stage_info/D_MN05/rooms.bin" = "res/stage_info/D_MN05/rooms.bin"
-"tpgz/stage_info/D_MN05/00/spawns.bin" = "res/stage_info/D_MN05/00/spawns.bin"
-"tpgz/stage_info/D_MN05/01/spawns.bin" = "res/stage_info/D_MN05/01/spawns.bin"
-"tpgz/stage_info/D_MN05/02/spawns.bin" = "res/stage_info/D_MN05/02/spawns.bin"
-"tpgz/stage_info/D_MN05/03/spawns.bin" = "res/stage_info/D_MN05/03/spawns.bin"
-"tpgz/stage_info/D_MN05/04/spawns.bin" = "res/stage_info/D_MN05/04/spawns.bin"
-"tpgz/stage_info/D_MN05/05/spawns.bin" = "res/stage_info/D_MN05/05/spawns.bin"
-"tpgz/stage_info/D_MN05/07/spawns.bin" = "res/stage_info/D_MN05/07/spawns.bin"
-"tpgz/stage_info/D_MN05/09/spawns.bin" = "res/stage_info/D_MN05/09/spawns.bin"
-"tpgz/stage_info/D_MN05/10/spawns.bin" = "res/stage_info/D_MN05/10/spawns.bin"
-"tpgz/stage_info/D_MN05/11/spawns.bin" = "res/stage_info/D_MN05/11/spawns.bin"
-"tpgz/stage_info/D_MN05/12/spawns.bin" = "res/stage_info/D_MN05/12/spawns.bin"
-"tpgz/stage_info/D_MN05/19/spawns.bin" = "res/stage_info/D_MN05/19/spawns.bin"
-"tpgz/stage_info/D_MN05/22/spawns.bin" = "res/stage_info/D_MN05/22/spawns.bin"
-"tpgz/stage_info/D_MN05A/rooms.bin" = "res/stage_info/D_MN05A/rooms.bin"
-"tpgz/stage_info/D_MN05A/50/spawns.bin" = "res/stage_info/D_MN05A/50/spawns.bin"
-"tpgz/stage_info/D_MN05B/rooms.bin" = "res/stage_info/D_MN05B/rooms.bin"
-"tpgz/stage_info/D_MN05B/51/spawns.bin" = "res/stage_info/D_MN05B/51/spawns.bin"
-"tpgz/stage_info/D_MN06/rooms.bin" = "res/stage_info/D_MN06/rooms.bin"
-"tpgz/stage_info/D_MN06/00/spawns.bin" = "res/stage_info/D_MN06/00/spawns.bin"
-"tpgz/stage_info/D_MN06/01/spawns.bin" = "res/stage_info/D_MN06/01/spawns.bin"
-"tpgz/stage_info/D_MN06/02/spawns.bin" = "res/stage_info/D_MN06/02/spawns.bin"
-"tpgz/stage_info/D_MN06/03/spawns.bin" = "res/stage_info/D_MN06/03/spawns.bin"
-"tpgz/stage_info/D_MN06/04/spawns.bin" = "res/stage_info/D_MN06/04/spawns.bin"
-"tpgz/stage_info/D_MN06/05/spawns.bin" = "res/stage_info/D_MN06/05/spawns.bin"
-"tpgz/stage_info/D_MN06/06/spawns.bin" = "res/stage_info/D_MN06/06/spawns.bin"
-"tpgz/stage_info/D_MN06/07/spawns.bin" = "res/stage_info/D_MN06/07/spawns.bin"
-"tpgz/stage_info/D_MN06/08/spawns.bin" = "res/stage_info/D_MN06/08/spawns.bin"
-"tpgz/stage_info/D_MN06A/rooms.bin" = "res/stage_info/D_MN06A/rooms.bin"
-"tpgz/stage_info/D_MN06A/50/spawns.bin" = "res/stage_info/D_MN06A/50/spawns.bin"
-"tpgz/stage_info/D_MN06B/rooms.bin" = "res/stage_info/D_MN06B/rooms.bin"
-"tpgz/stage_info/D_MN06B/51/spawns.bin" = "res/stage_info/D_MN06B/51/spawns.bin"
-"tpgz/stage_info/D_MN07/rooms.bin" = "res/stage_info/D_MN07/rooms.bin"
-"tpgz/stage_info/D_MN07/00/spawns.bin" = "res/stage_info/D_MN07/00/spawns.bin"
-"tpgz/stage_info/D_MN07/01/spawns.bin" = "res/stage_info/D_MN07/01/spawns.bin"
-"tpgz/stage_info/D_MN07/02/spawns.bin" = "res/stage_info/D_MN07/02/spawns.bin"
-"tpgz/stage_info/D_MN07/03/spawns.bin" = "res/stage_info/D_MN07/03/spawns.bin"
-"tpgz/stage_info/D_MN07/04/spawns.bin" = "res/stage_info/D_MN07/04/spawns.bin"
-"tpgz/stage_info/D_MN07/05/spawns.bin" = "res/stage_info/D_MN07/05/spawns.bin"
-"tpgz/stage_info/D_MN07/06/spawns.bin" = "res/stage_info/D_MN07/06/spawns.bin"
-"tpgz/stage_info/D_MN07/07/spawns.bin" = "res/stage_info/D_MN07/07/spawns.bin"
-"tpgz/stage_info/D_MN07/08/spawns.bin" = "res/stage_info/D_MN07/08/spawns.bin"
-"tpgz/stage_info/D_MN07/10/spawns.bin" = "res/stage_info/D_MN07/10/spawns.bin"
-"tpgz/stage_info/D_MN07/11/spawns.bin" = "res/stage_info/D_MN07/11/spawns.bin"
-"tpgz/stage_info/D_MN07/12/spawns.bin" = "res/stage_info/D_MN07/12/spawns.bin"
-"tpgz/stage_info/D_MN07/13/spawns.bin" = "res/stage_info/D_MN07/13/spawns.bin"
-"tpgz/stage_info/D_MN07/14/spawns.bin" = "res/stage_info/D_MN07/14/spawns.bin"
-"tpgz/stage_info/D_MN07/15/spawns.bin" = "res/stage_info/D_MN07/15/spawns.bin"
-"tpgz/stage_info/D_MN07/16/spawns.bin" = "res/stage_info/D_MN07/16/spawns.bin"
-"tpgz/stage_info/D_MN07A/rooms.bin" = "res/stage_info/D_MN07A/rooms.bin"
-"tpgz/stage_info/D_MN07A/50/spawns.bin" = "res/stage_info/D_MN07A/50/spawns.bin"
-"tpgz/stage_info/D_MN07B/rooms.bin" = "res/stage_info/D_MN07B/rooms.bin"
-"tpgz/stage_info/D_MN07B/51/spawns.bin" = "res/stage_info/D_MN07B/51/spawns.bin"
-"tpgz/stage_info/D_MN08/rooms.bin" = "res/stage_info/D_MN08/rooms.bin"
-"tpgz/stage_info/D_MN08/00/spawns.bin" = "res/stage_info/D_MN08/00/spawns.bin"
-"tpgz/stage_info/D_MN08/01/spawns.bin" = "res/stage_info/D_MN08/01/spawns.bin"
-"tpgz/stage_info/D_MN08/02/spawns.bin" = "res/stage_info/D_MN08/02/spawns.bin"
-"tpgz/stage_info/D_MN08/04/spawns.bin" = "res/stage_info/D_MN08/04/spawns.bin"
-"tpgz/stage_info/D_MN08/05/spawns.bin" = "res/stage_info/D_MN08/05/spawns.bin"
-"tpgz/stage_info/D_MN08/07/spawns.bin" = "res/stage_info/D_MN08/07/spawns.bin"
-"tpgz/stage_info/D_MN08/08/spawns.bin" = "res/stage_info/D_MN08/08/spawns.bin"
-"tpgz/stage_info/D_MN08/09/spawns.bin" = "res/stage_info/D_MN08/09/spawns.bin"
-"tpgz/stage_info/D_MN08/10/spawns.bin" = "res/stage_info/D_MN08/10/spawns.bin"
-"tpgz/stage_info/D_MN08/11/spawns.bin" = "res/stage_info/D_MN08/11/spawns.bin"
-"tpgz/stage_info/D_MN08A/rooms.bin" = "res/stage_info/D_MN08A/rooms.bin"
-"tpgz/stage_info/D_MN08A/10/spawns.bin" = "res/stage_info/D_MN08A/10/spawns.bin"
-"tpgz/stage_info/D_MN08B/rooms.bin" = "res/stage_info/D_MN08B/rooms.bin"
-"tpgz/stage_info/D_MN08B/51/spawns.bin" = "res/stage_info/D_MN08B/51/spawns.bin"
-"tpgz/stage_info/D_MN08C/rooms.bin" = "res/stage_info/D_MN08C/rooms.bin"
-"tpgz/stage_info/D_MN08C/52/spawns.bin" = "res/stage_info/D_MN08C/52/spawns.bin"
-"tpgz/stage_info/D_MN08D/rooms.bin" = "res/stage_info/D_MN08D/rooms.bin"
-"tpgz/stage_info/D_MN08D/50/spawns.bin" = "res/stage_info/D_MN08D/50/spawns.bin"
-"tpgz/stage_info/D_MN08D/53/spawns.bin" = "res/stage_info/D_MN08D/53/spawns.bin"
-"tpgz/stage_info/D_MN08D/54/spawns.bin" = "res/stage_info/D_MN08D/54/spawns.bin"
-"tpgz/stage_info/D_MN08D/55/spawns.bin" = "res/stage_info/D_MN08D/55/spawns.bin"
-"tpgz/stage_info/D_MN08D/56/spawns.bin" = "res/stage_info/D_MN08D/56/spawns.bin"
-"tpgz/stage_info/D_MN08D/57/spawns.bin" = "res/stage_info/D_MN08D/57/spawns.bin"
-"tpgz/stage_info/D_MN08D/60/spawns.bin" = "res/stage_info/D_MN08D/60/spawns.bin"
-"tpgz/stage_info/D_MN09/rooms.bin" = "res/stage_info/D_MN09/rooms.bin"
-"tpgz/stage_info/D_MN09/01/spawns.bin" = "res/stage_info/D_MN09/01/spawns.bin"
-"tpgz/stage_info/D_MN09/02/spawns.bin" = "res/stage_info/D_MN09/02/spawns.bin"
-"tpgz/stage_info/D_MN09/03/spawns.bin" = "res/stage_info/D_MN09/03/spawns.bin"
-"tpgz/stage_info/D_MN09/04/spawns.bin" = "res/stage_info/D_MN09/04/spawns.bin"
-"tpgz/stage_info/D_MN09/05/spawns.bin" = "res/stage_info/D_MN09/05/spawns.bin"
-"tpgz/stage_info/D_MN09/06/spawns.bin" = "res/stage_info/D_MN09/06/spawns.bin"
-"tpgz/stage_info/D_MN09/08/spawns.bin" = "res/stage_info/D_MN09/08/spawns.bin"
-"tpgz/stage_info/D_MN09/09/spawns.bin" = "res/stage_info/D_MN09/09/spawns.bin"
-"tpgz/stage_info/D_MN09/11/spawns.bin" = "res/stage_info/D_MN09/11/spawns.bin"
-"tpgz/stage_info/D_MN09/12/spawns.bin" = "res/stage_info/D_MN09/12/spawns.bin"
-"tpgz/stage_info/D_MN09/13/spawns.bin" = "res/stage_info/D_MN09/13/spawns.bin"
-"tpgz/stage_info/D_MN09/14/spawns.bin" = "res/stage_info/D_MN09/14/spawns.bin"
-"tpgz/stage_info/D_MN09/15/spawns.bin" = "res/stage_info/D_MN09/15/spawns.bin"
-"tpgz/stage_info/D_MN09A/rooms.bin" = "res/stage_info/D_MN09A/rooms.bin"
-"tpgz/stage_info/D_MN09A/50/spawns.bin" = "res/stage_info/D_MN09A/50/spawns.bin"
-"tpgz/stage_info/D_MN09A/51/spawns.bin" = "res/stage_info/D_MN09A/51/spawns.bin"
-"tpgz/stage_info/D_MN09B/rooms.bin" = "res/stage_info/D_MN09B/rooms.bin"
-"tpgz/stage_info/D_MN09B/00/spawns.bin" = "res/stage_info/D_MN09B/00/spawns.bin"
-"tpgz/stage_info/D_MN09C/rooms.bin" = "res/stage_info/D_MN09C/rooms.bin"
-"tpgz/stage_info/D_MN09C/00/spawns.bin" = "res/stage_info/D_MN09C/00/spawns.bin"
-"tpgz/stage_info/D_MN10/rooms.bin" = "res/stage_info/D_MN10/rooms.bin"
-"tpgz/stage_info/D_MN10/00/spawns.bin" = "res/stage_info/D_MN10/00/spawns.bin"
-"tpgz/stage_info/D_MN10/01/spawns.bin" = "res/stage_info/D_MN10/01/spawns.bin"
-"tpgz/stage_info/D_MN10/02/spawns.bin" = "res/stage_info/D_MN10/02/spawns.bin"
-"tpgz/stage_info/D_MN10/03/spawns.bin" = "res/stage_info/D_MN10/03/spawns.bin"
-"tpgz/stage_info/D_MN10/04/spawns.bin" = "res/stage_info/D_MN10/04/spawns.bin"
-"tpgz/stage_info/D_MN10/05/spawns.bin" = "res/stage_info/D_MN10/05/spawns.bin"
-"tpgz/stage_info/D_MN10/06/spawns.bin" = "res/stage_info/D_MN10/06/spawns.bin"
-"tpgz/stage_info/D_MN10/07/spawns.bin" = "res/stage_info/D_MN10/07/spawns.bin"
-"tpgz/stage_info/D_MN10/08/spawns.bin" = "res/stage_info/D_MN10/08/spawns.bin"
-"tpgz/stage_info/D_MN10/09/spawns.bin" = "res/stage_info/D_MN10/09/spawns.bin"
-"tpgz/stage_info/D_MN10/10/spawns.bin" = "res/stage_info/D_MN10/10/spawns.bin"
-"tpgz/stage_info/D_MN10/11/spawns.bin" = "res/stage_info/D_MN10/11/spawns.bin"
-"tpgz/stage_info/D_MN10/12/spawns.bin" = "res/stage_info/D_MN10/12/spawns.bin"
-"tpgz/stage_info/D_MN10/13/spawns.bin" = "res/stage_info/D_MN10/13/spawns.bin"
-"tpgz/stage_info/D_MN10/14/spawns.bin" = "res/stage_info/D_MN10/14/spawns.bin"
-"tpgz/stage_info/D_MN10/15/spawns.bin" = "res/stage_info/D_MN10/15/spawns.bin"
-"tpgz/stage_info/D_MN10/16/spawns.bin" = "res/stage_info/D_MN10/16/spawns.bin"
-"tpgz/stage_info/D_MN10A/rooms.bin" = "res/stage_info/D_MN10A/rooms.bin"
-"tpgz/stage_info/D_MN10A/50/spawns.bin" = "res/stage_info/D_MN10A/50/spawns.bin"
-"tpgz/stage_info/D_MN10B/rooms.bin" = "res/stage_info/D_MN10B/rooms.bin"
-"tpgz/stage_info/D_MN10B/51/spawns.bin" = "res/stage_info/D_MN10B/51/spawns.bin"
-"tpgz/stage_info/D_MN11/rooms.bin" = "res/stage_info/D_MN11/rooms.bin"
-"tpgz/stage_info/D_MN11/00/spawns.bin" = "res/stage_info/D_MN11/00/spawns.bin"
-"tpgz/stage_info/D_MN11/01/spawns.bin" = "res/stage_info/D_MN11/01/spawns.bin"
-"tpgz/stage_info/D_MN11/02/spawns.bin" = "res/stage_info/D_MN11/02/spawns.bin"
-"tpgz/stage_info/D_MN11/03/spawns.bin" = "res/stage_info/D_MN11/03/spawns.bin"
-"tpgz/stage_info/D_MN11/04/spawns.bin" = "res/stage_info/D_MN11/04/spawns.bin"
-"tpgz/stage_info/D_MN11/05/spawns.bin" = "res/stage_info/D_MN11/05/spawns.bin"
-"tpgz/stage_info/D_MN11/06/spawns.bin" = "res/stage_info/D_MN11/06/spawns.bin"
-"tpgz/stage_info/D_MN11/07/spawns.bin" = "res/stage_info/D_MN11/07/spawns.bin"
-"tpgz/stage_info/D_MN11/08/spawns.bin" = "res/stage_info/D_MN11/08/spawns.bin"
-"tpgz/stage_info/D_MN11/09/spawns.bin" = "res/stage_info/D_MN11/09/spawns.bin"
-"tpgz/stage_info/D_MN11/11/spawns.bin" = "res/stage_info/D_MN11/11/spawns.bin"
-"tpgz/stage_info/D_MN11/13/spawns.bin" = "res/stage_info/D_MN11/13/spawns.bin"
-"tpgz/stage_info/D_MN11A/rooms.bin" = "res/stage_info/D_MN11A/rooms.bin"
-"tpgz/stage_info/D_MN11A/50/spawns.bin" = "res/stage_info/D_MN11A/50/spawns.bin"
-"tpgz/stage_info/D_MN11B/rooms.bin" = "res/stage_info/D_MN11B/rooms.bin"
-"tpgz/stage_info/D_MN11B/49/spawns.bin" = "res/stage_info/D_MN11B/49/spawns.bin"
-"tpgz/stage_info/D_MN11B/51/spawns.bin" = "res/stage_info/D_MN11B/51/spawns.bin"
-"tpgz/stage_info/D_SB00/rooms.bin" = "res/stage_info/D_SB00/rooms.bin"
-"tpgz/stage_info/D_SB00/00/spawns.bin" = "res/stage_info/D_SB00/00/spawns.bin"
-"tpgz/stage_info/D_SB01/rooms.bin" = "res/stage_info/D_SB01/rooms.bin"
-"tpgz/stage_info/D_SB01/00/spawns.bin" = "res/stage_info/D_SB01/00/spawns.bin"
-"tpgz/stage_info/D_SB01/01/spawns.bin" = "res/stage_info/D_SB01/01/spawns.bin"
-"tpgz/stage_info/D_SB01/02/spawns.bin" = "res/stage_info/D_SB01/02/spawns.bin"
-"tpgz/stage_info/D_SB01/03/spawns.bin" = "res/stage_info/D_SB01/03/spawns.bin"
-"tpgz/stage_info/D_SB01/04/spawns.bin" = "res/stage_info/D_SB01/04/spawns.bin"
-"tpgz/stage_info/D_SB01/05/spawns.bin" = "res/stage_info/D_SB01/05/spawns.bin"
-"tpgz/stage_info/D_SB01/06/spawns.bin" = "res/stage_info/D_SB01/06/spawns.bin"
-"tpgz/stage_info/D_SB01/07/spawns.bin" = "res/stage_info/D_SB01/07/spawns.bin"
-"tpgz/stage_info/D_SB01/08/spawns.bin" = "res/stage_info/D_SB01/08/spawns.bin"
-"tpgz/stage_info/D_SB01/09/spawns.bin" = "res/stage_info/D_SB01/09/spawns.bin"
-"tpgz/stage_info/D_SB01/10/spawns.bin" = "res/stage_info/D_SB01/10/spawns.bin"
-"tpgz/stage_info/D_SB01/11/spawns.bin" = "res/stage_info/D_SB01/11/spawns.bin"
-"tpgz/stage_info/D_SB01/12/spawns.bin" = "res/stage_info/D_SB01/12/spawns.bin"
-"tpgz/stage_info/D_SB01/13/spawns.bin" = "res/stage_info/D_SB01/13/spawns.bin"
-"tpgz/stage_info/D_SB01/14/spawns.bin" = "res/stage_info/D_SB01/14/spawns.bin"
-"tpgz/stage_info/D_SB01/15/spawns.bin" = "res/stage_info/D_SB01/15/spawns.bin"
-"tpgz/stage_info/D_SB01/16/spawns.bin" = "res/stage_info/D_SB01/16/spawns.bin"
-"tpgz/stage_info/D_SB01/17/spawns.bin" = "res/stage_info/D_SB01/17/spawns.bin"
-"tpgz/stage_info/D_SB01/18/spawns.bin" = "res/stage_info/D_SB01/18/spawns.bin"
-"tpgz/stage_info/D_SB01/19/spawns.bin" = "res/stage_info/D_SB01/19/spawns.bin"
-"tpgz/stage_info/D_SB01/20/spawns.bin" = "res/stage_info/D_SB01/20/spawns.bin"
-"tpgz/stage_info/D_SB01/21/spawns.bin" = "res/stage_info/D_SB01/21/spawns.bin"
-"tpgz/stage_info/D_SB01/22/spawns.bin" = "res/stage_info/D_SB01/22/spawns.bin"
-"tpgz/stage_info/D_SB01/23/spawns.bin" = "res/stage_info/D_SB01/23/spawns.bin"
-"tpgz/stage_info/D_SB01/24/spawns.bin" = "res/stage_info/D_SB01/24/spawns.bin"
-"tpgz/stage_info/D_SB01/25/spawns.bin" = "res/stage_info/D_SB01/25/spawns.bin"
-"tpgz/stage_info/D_SB01/26/spawns.bin" = "res/stage_info/D_SB01/26/spawns.bin"
-"tpgz/stage_info/D_SB01/27/spawns.bin" = "res/stage_info/D_SB01/27/spawns.bin"
-"tpgz/stage_info/D_SB01/28/spawns.bin" = "res/stage_info/D_SB01/28/spawns.bin"
-"tpgz/stage_info/D_SB01/29/spawns.bin" = "res/stage_info/D_SB01/29/spawns.bin"
-"tpgz/stage_info/D_SB01/30/spawns.bin" = "res/stage_info/D_SB01/30/spawns.bin"
-"tpgz/stage_info/D_SB01/31/spawns.bin" = "res/stage_info/D_SB01/31/spawns.bin"
-"tpgz/stage_info/D_SB01/32/spawns.bin" = "res/stage_info/D_SB01/32/spawns.bin"
-"tpgz/stage_info/D_SB01/33/spawns.bin" = "res/stage_info/D_SB01/33/spawns.bin"
-"tpgz/stage_info/D_SB01/34/spawns.bin" = "res/stage_info/D_SB01/34/spawns.bin"
-"tpgz/stage_info/D_SB01/35/spawns.bin" = "res/stage_info/D_SB01/35/spawns.bin"
-"tpgz/stage_info/D_SB01/36/spawns.bin" = "res/stage_info/D_SB01/36/spawns.bin"
-"tpgz/stage_info/D_SB01/37/spawns.bin" = "res/stage_info/D_SB01/37/spawns.bin"
-"tpgz/stage_info/D_SB01/38/spawns.bin" = "res/stage_info/D_SB01/38/spawns.bin"
-"tpgz/stage_info/D_SB01/39/spawns.bin" = "res/stage_info/D_SB01/39/spawns.bin"
-"tpgz/stage_info/D_SB01/40/spawns.bin" = "res/stage_info/D_SB01/40/spawns.bin"
-"tpgz/stage_info/D_SB01/41/spawns.bin" = "res/stage_info/D_SB01/41/spawns.bin"
-"tpgz/stage_info/D_SB01/42/spawns.bin" = "res/stage_info/D_SB01/42/spawns.bin"
-"tpgz/stage_info/D_SB01/43/spawns.bin" = "res/stage_info/D_SB01/43/spawns.bin"
-"tpgz/stage_info/D_SB01/44/spawns.bin" = "res/stage_info/D_SB01/44/spawns.bin"
-"tpgz/stage_info/D_SB01/45/spawns.bin" = "res/stage_info/D_SB01/45/spawns.bin"
-"tpgz/stage_info/D_SB01/46/spawns.bin" = "res/stage_info/D_SB01/46/spawns.bin"
-"tpgz/stage_info/D_SB01/47/spawns.bin" = "res/stage_info/D_SB01/47/spawns.bin"
-"tpgz/stage_info/D_SB01/48/spawns.bin" = "res/stage_info/D_SB01/48/spawns.bin"
-"tpgz/stage_info/D_SB01/49/spawns.bin" = "res/stage_info/D_SB01/49/spawns.bin"
-"tpgz/stage_info/D_SB02/rooms.bin" = "res/stage_info/D_SB02/rooms.bin"
-"tpgz/stage_info/D_SB02/00/spawns.bin" = "res/stage_info/D_SB02/00/spawns.bin"
-"tpgz/stage_info/D_SB03/rooms.bin" = "res/stage_info/D_SB03/rooms.bin"
-"tpgz/stage_info/D_SB03/00/spawns.bin" = "res/stage_info/D_SB03/00/spawns.bin"
-"tpgz/stage_info/D_SB04/rooms.bin" = "res/stage_info/D_SB04/rooms.bin"
-"tpgz/stage_info/D_SB04/10/spawns.bin" = "res/stage_info/D_SB04/10/spawns.bin"
-"tpgz/stage_info/D_SB05/rooms.bin" = "res/stage_info/D_SB05/rooms.bin"
-"tpgz/stage_info/D_SB05/00/spawns.bin" = "res/stage_info/D_SB05/00/spawns.bin"
-"tpgz/stage_info/D_SB06/rooms.bin" = "res/stage_info/D_SB06/rooms.bin"
-"tpgz/stage_info/D_SB06/01/spawns.bin" = "res/stage_info/D_SB06/01/spawns.bin"
-"tpgz/stage_info/D_SB07/rooms.bin" = "res/stage_info/D_SB07/rooms.bin"
-"tpgz/stage_info/D_SB07/02/spawns.bin" = "res/stage_info/D_SB07/02/spawns.bin"
-"tpgz/stage_info/D_SB08/rooms.bin" = "res/stage_info/D_SB08/rooms.bin"
-"tpgz/stage_info/D_SB08/03/spawns.bin" = "res/stage_info/D_SB08/03/spawns.bin"
-"tpgz/stage_info/D_SB09/rooms.bin" = "res/stage_info/D_SB09/rooms.bin"
-"tpgz/stage_info/D_SB09/04/spawns.bin" = "res/stage_info/D_SB09/04/spawns.bin"
-"tpgz/stage_info/D_SB10/rooms.bin" = "res/stage_info/D_SB10/rooms.bin"
-"tpgz/stage_info/D_SB10/00/spawns.bin" = "res/stage_info/D_SB10/00/spawns.bin"
-"tpgz/stage_info/F_SP00/rooms.bin" = "res/stage_info/F_SP00/rooms.bin"
-"tpgz/stage_info/F_SP00/00/spawns.bin" = "res/stage_info/F_SP00/00/spawns.bin"
-"tpgz/stage_info/F_SP102/rooms.bin" = "res/stage_info/F_SP102/rooms.bin"
-"tpgz/stage_info/F_SP102/00/spawns.bin" = "res/stage_info/F_SP102/00/spawns.bin"
-"tpgz/stage_info/F_SP103/rooms.bin" = "res/stage_info/F_SP103/rooms.bin"
-"tpgz/stage_info/F_SP103/00/spawns.bin" = "res/stage_info/F_SP103/00/spawns.bin"
-"tpgz/stage_info/F_SP103/01/spawns.bin" = "res/stage_info/F_SP103/01/spawns.bin"
-"tpgz/stage_info/F_SP104/rooms.bin" = "res/stage_info/F_SP104/rooms.bin"
-"tpgz/stage_info/F_SP104/01/spawns.bin" = "res/stage_info/F_SP104/01/spawns.bin"
-"tpgz/stage_info/F_SP108/rooms.bin" = "res/stage_info/F_SP108/rooms.bin"
-"tpgz/stage_info/F_SP108/00/spawns.bin" = "res/stage_info/F_SP108/00/spawns.bin"
-"tpgz/stage_info/F_SP108/01/spawns.bin" = "res/stage_info/F_SP108/01/spawns.bin"
-"tpgz/stage_info/F_SP108/02/spawns.bin" = "res/stage_info/F_SP108/02/spawns.bin"
-"tpgz/stage_info/F_SP108/03/spawns.bin" = "res/stage_info/F_SP108/03/spawns.bin"
-"tpgz/stage_info/F_SP108/04/spawns.bin" = "res/stage_info/F_SP108/04/spawns.bin"
-"tpgz/stage_info/F_SP108/05/spawns.bin" = "res/stage_info/F_SP108/05/spawns.bin"
-"tpgz/stage_info/F_SP108/06/spawns.bin" = "res/stage_info/F_SP108/06/spawns.bin"
-"tpgz/stage_info/F_SP108/08/spawns.bin" = "res/stage_info/F_SP108/08/spawns.bin"
-"tpgz/stage_info/F_SP108/11/spawns.bin" = "res/stage_info/F_SP108/11/spawns.bin"
-"tpgz/stage_info/F_SP108/14/spawns.bin" = "res/stage_info/F_SP108/14/spawns.bin"
-"tpgz/stage_info/F_SP109/rooms.bin" = "res/stage_info/F_SP109/rooms.bin"
-"tpgz/stage_info/F_SP109/00/spawns.bin" = "res/stage_info/F_SP109/00/spawns.bin"
-"tpgz/stage_info/F_SP110/rooms.bin" = "res/stage_info/F_SP110/rooms.bin"
-"tpgz/stage_info/F_SP110/00/spawns.bin" = "res/stage_info/F_SP110/00/spawns.bin"
-"tpgz/stage_info/F_SP110/01/spawns.bin" = "res/stage_info/F_SP110/01/spawns.bin"
-"tpgz/stage_info/F_SP110/02/spawns.bin" = "res/stage_info/F_SP110/02/spawns.bin"
-"tpgz/stage_info/F_SP110/03/spawns.bin" = "res/stage_info/F_SP110/03/spawns.bin"
-"tpgz/stage_info/F_SP111/rooms.bin" = "res/stage_info/F_SP111/rooms.bin"
-"tpgz/stage_info/F_SP111/00/spawns.bin" = "res/stage_info/F_SP111/00/spawns.bin"
-"tpgz/stage_info/F_SP112/rooms.bin" = "res/stage_info/F_SP112/rooms.bin"
-"tpgz/stage_info/F_SP112/01/spawns.bin" = "res/stage_info/F_SP112/01/spawns.bin"
-"tpgz/stage_info/F_SP113/rooms.bin" = "res/stage_info/F_SP113/rooms.bin"
-"tpgz/stage_info/F_SP113/00/spawns.bin" = "res/stage_info/F_SP113/00/spawns.bin"
-"tpgz/stage_info/F_SP113/01/spawns.bin" = "res/stage_info/F_SP113/01/spawns.bin"
-"tpgz/stage_info/F_SP114/rooms.bin" = "res/stage_info/F_SP114/rooms.bin"
-"tpgz/stage_info/F_SP114/00/spawns.bin" = "res/stage_info/F_SP114/00/spawns.bin"
-"tpgz/stage_info/F_SP114/01/spawns.bin" = "res/stage_info/F_SP114/01/spawns.bin"
-"tpgz/stage_info/F_SP114/02/spawns.bin" = "res/stage_info/F_SP114/02/spawns.bin"
-"tpgz/stage_info/F_SP115/rooms.bin" = "res/stage_info/F_SP115/rooms.bin"
-"tpgz/stage_info/F_SP115/00/spawns.bin" = "res/stage_info/F_SP115/00/spawns.bin"
-"tpgz/stage_info/F_SP115/01/spawns.bin" = "res/stage_info/F_SP115/01/spawns.bin"
-"tpgz/stage_info/F_SP116/rooms.bin" = "res/stage_info/F_SP116/rooms.bin"
-"tpgz/stage_info/F_SP116/00/spawns.bin" = "res/stage_info/F_SP116/00/spawns.bin"
-"tpgz/stage_info/F_SP116/01/spawns.bin" = "res/stage_info/F_SP116/01/spawns.bin"
-"tpgz/stage_info/F_SP116/02/spawns.bin" = "res/stage_info/F_SP116/02/spawns.bin"
-"tpgz/stage_info/F_SP116/03/spawns.bin" = "res/stage_info/F_SP116/03/spawns.bin"
-"tpgz/stage_info/F_SP116/04/spawns.bin" = "res/stage_info/F_SP116/04/spawns.bin"
-"tpgz/stage_info/F_SP117/rooms.bin" = "res/stage_info/F_SP117/rooms.bin"
-"tpgz/stage_info/F_SP117/01/spawns.bin" = "res/stage_info/F_SP117/01/spawns.bin"
-"tpgz/stage_info/F_SP117/02/spawns.bin" = "res/stage_info/F_SP117/02/spawns.bin"
-"tpgz/stage_info/F_SP117/03/spawns.bin" = "res/stage_info/F_SP117/03/spawns.bin"
-"tpgz/stage_info/F_SP118/rooms.bin" = "res/stage_info/F_SP118/rooms.bin"
-"tpgz/stage_info/F_SP118/01/spawns.bin" = "res/stage_info/F_SP118/01/spawns.bin"
-"tpgz/stage_info/F_SP118/02/spawns.bin" = "res/stage_info/F_SP118/02/spawns.bin"
-"tpgz/stage_info/F_SP118/03/spawns.bin" = "res/stage_info/F_SP118/03/spawns.bin"
-"tpgz/stage_info/F_SP121/rooms.bin" = "res/stage_info/F_SP121/rooms.bin"
-"tpgz/stage_info/F_SP121/00/spawns.bin" = "res/stage_info/F_SP121/00/spawns.bin"
-"tpgz/stage_info/F_SP121/01/spawns.bin" = "res/stage_info/F_SP121/01/spawns.bin"
-"tpgz/stage_info/F_SP121/02/spawns.bin" = "res/stage_info/F_SP121/02/spawns.bin"
-"tpgz/stage_info/F_SP121/03/spawns.bin" = "res/stage_info/F_SP121/03/spawns.bin"
-"tpgz/stage_info/F_SP121/04/spawns.bin" = "res/stage_info/F_SP121/04/spawns.bin"
-"tpgz/stage_info/F_SP121/05/spawns.bin" = "res/stage_info/F_SP121/05/spawns.bin"
-"tpgz/stage_info/F_SP121/06/spawns.bin" = "res/stage_info/F_SP121/06/spawns.bin"
-"tpgz/stage_info/F_SP121/07/spawns.bin" = "res/stage_info/F_SP121/07/spawns.bin"
-"tpgz/stage_info/F_SP121/09/spawns.bin" = "res/stage_info/F_SP121/09/spawns.bin"
-"tpgz/stage_info/F_SP121/10/spawns.bin" = "res/stage_info/F_SP121/10/spawns.bin"
-"tpgz/stage_info/F_SP121/11/spawns.bin" = "res/stage_info/F_SP121/11/spawns.bin"
-"tpgz/stage_info/F_SP121/12/spawns.bin" = "res/stage_info/F_SP121/12/spawns.bin"
-"tpgz/stage_info/F_SP121/13/spawns.bin" = "res/stage_info/F_SP121/13/spawns.bin"
-"tpgz/stage_info/F_SP121/14/spawns.bin" = "res/stage_info/F_SP121/14/spawns.bin"
-"tpgz/stage_info/F_SP121/15/spawns.bin" = "res/stage_info/F_SP121/15/spawns.bin"
-"tpgz/stage_info/F_SP122/rooms.bin" = "res/stage_info/F_SP122/rooms.bin"
-"tpgz/stage_info/F_SP122/08/spawns.bin" = "res/stage_info/F_SP122/08/spawns.bin"
-"tpgz/stage_info/F_SP122/16/spawns.bin" = "res/stage_info/F_SP122/16/spawns.bin"
-"tpgz/stage_info/F_SP122/17/spawns.bin" = "res/stage_info/F_SP122/17/spawns.bin"
-"tpgz/stage_info/F_SP123/rooms.bin" = "res/stage_info/F_SP123/rooms.bin"
-"tpgz/stage_info/F_SP123/13/spawns.bin" = "res/stage_info/F_SP123/13/spawns.bin"
-"tpgz/stage_info/F_SP124/rooms.bin" = "res/stage_info/F_SP124/rooms.bin"
-"tpgz/stage_info/F_SP124/00/spawns.bin" = "res/stage_info/F_SP124/00/spawns.bin"
-"tpgz/stage_info/F_SP125/rooms.bin" = "res/stage_info/F_SP125/rooms.bin"
-"tpgz/stage_info/F_SP125/04/spawns.bin" = "res/stage_info/F_SP125/04/spawns.bin"
-"tpgz/stage_info/F_SP126/rooms.bin" = "res/stage_info/F_SP126/rooms.bin"
-"tpgz/stage_info/F_SP126/00/spawns.bin" = "res/stage_info/F_SP126/00/spawns.bin"
-"tpgz/stage_info/F_SP127/rooms.bin" = "res/stage_info/F_SP127/rooms.bin"
-"tpgz/stage_info/F_SP127/00/spawns.bin" = "res/stage_info/F_SP127/00/spawns.bin"
-"tpgz/stage_info/F_SP128/rooms.bin" = "res/stage_info/F_SP128/rooms.bin"
-"tpgz/stage_info/F_SP128/00/spawns.bin" = "res/stage_info/F_SP128/00/spawns.bin"
-"tpgz/stage_info/F_SP200/rooms.bin" = "res/stage_info/F_SP200/rooms.bin"
-"tpgz/stage_info/F_SP200/00/spawns.bin" = "res/stage_info/F_SP200/00/spawns.bin"
-"tpgz/stage_info/R_SP01/rooms.bin" = "res/stage_info/R_SP01/rooms.bin"
-"tpgz/stage_info/R_SP01/00/spawns.bin" = "res/stage_info/R_SP01/00/spawns.bin"
-"tpgz/stage_info/R_SP01/01/spawns.bin" = "res/stage_info/R_SP01/01/spawns.bin"
-"tpgz/stage_info/R_SP01/02/spawns.bin" = "res/stage_info/R_SP01/02/spawns.bin"
-"tpgz/stage_info/R_SP01/04/spawns.bin" = "res/stage_info/R_SP01/04/spawns.bin"
-"tpgz/stage_info/R_SP01/05/spawns.bin" = "res/stage_info/R_SP01/05/spawns.bin"
-"tpgz/stage_info/R_SP01/07/spawns.bin" = "res/stage_info/R_SP01/07/spawns.bin"
-"tpgz/stage_info/R_SP107/rooms.bin" = "res/stage_info/R_SP107/rooms.bin"
-"tpgz/stage_info/R_SP107/00/spawns.bin" = "res/stage_info/R_SP107/00/spawns.bin"
-"tpgz/stage_info/R_SP107/01/spawns.bin" = "res/stage_info/R_SP107/01/spawns.bin"
-"tpgz/stage_info/R_SP107/02/spawns.bin" = "res/stage_info/R_SP107/02/spawns.bin"
-"tpgz/stage_info/R_SP107/03/spawns.bin" = "res/stage_info/R_SP107/03/spawns.bin"
-"tpgz/stage_info/R_SP108/rooms.bin" = "res/stage_info/R_SP108/rooms.bin"
-"tpgz/stage_info/R_SP108/00/spawns.bin" = "res/stage_info/R_SP108/00/spawns.bin"
-"tpgz/stage_info/R_SP109/rooms.bin" = "res/stage_info/R_SP109/rooms.bin"
-"tpgz/stage_info/R_SP109/00/spawns.bin" = "res/stage_info/R_SP109/00/spawns.bin"
-"tpgz/stage_info/R_SP109/01/spawns.bin" = "res/stage_info/R_SP109/01/spawns.bin"
-"tpgz/stage_info/R_SP109/02/spawns.bin" = "res/stage_info/R_SP109/02/spawns.bin"
-"tpgz/stage_info/R_SP109/03/spawns.bin" = "res/stage_info/R_SP109/03/spawns.bin"
-"tpgz/stage_info/R_SP109/04/spawns.bin" = "res/stage_info/R_SP109/04/spawns.bin"
-"tpgz/stage_info/R_SP109/05/spawns.bin" = "res/stage_info/R_SP109/05/spawns.bin"
-"tpgz/stage_info/R_SP109/06/spawns.bin" = "res/stage_info/R_SP109/06/spawns.bin"
-"tpgz/stage_info/R_SP110/rooms.bin" = "res/stage_info/R_SP110/rooms.bin"
-"tpgz/stage_info/R_SP110/00/spawns.bin" = "res/stage_info/R_SP110/00/spawns.bin"
-"tpgz/stage_info/R_SP116/rooms.bin" = "res/stage_info/R_SP116/rooms.bin"
-"tpgz/stage_info/R_SP116/05/spawns.bin" = "res/stage_info/R_SP116/05/spawns.bin"
-"tpgz/stage_info/R_SP116/06/spawns.bin" = "res/stage_info/R_SP116/06/spawns.bin"
-"tpgz/stage_info/R_SP127/rooms.bin" = "res/stage_info/R_SP127/rooms.bin"
-"tpgz/stage_info/R_SP127/00/spawns.bin" = "res/stage_info/R_SP127/00/spawns.bin"
-"tpgz/stage_info/R_SP128/rooms.bin" = "res/stage_info/R_SP128/rooms.bin"
-"tpgz/stage_info/R_SP128/00/spawns.bin" = "res/stage_info/R_SP128/00/spawns.bin"
-"tpgz/stage_info/R_SP160/rooms.bin" = "res/stage_info/R_SP160/rooms.bin"
-"tpgz/stage_info/R_SP160/00/spawns.bin" = "res/stage_info/R_SP160/00/spawns.bin"
-"tpgz/stage_info/R_SP160/01/spawns.bin" = "res/stage_info/R_SP160/01/spawns.bin"
-"tpgz/stage_info/R_SP160/02/spawns.bin" = "res/stage_info/R_SP160/02/spawns.bin"
-"tpgz/stage_info/R_SP160/03/spawns.bin" = "res/stage_info/R_SP160/03/spawns.bin"
-"tpgz/stage_info/R_SP160/04/spawns.bin" = "res/stage_info/R_SP160/04/spawns.bin"
-"tpgz/stage_info/R_SP160/05/spawns.bin" = "res/stage_info/R_SP160/05/spawns.bin"
-"tpgz/stage_info/R_SP161/rooms.bin" = "res/stage_info/R_SP161/rooms.bin"
-"tpgz/stage_info/R_SP161/07/spawns.bin" = "res/stage_info/R_SP161/07/spawns.bin"
-"tpgz/stage_info/R_SP209/rooms.bin" = "res/stage_info/R_SP209/rooms.bin"
-"tpgz/stage_info/R_SP209/07/spawns.bin" = "res/stage_info/R_SP209/07/spawns.bin"
-"tpgz/stage_info/R_SP300/rooms.bin" = "res/stage_info/R_SP300/rooms.bin"
-"tpgz/stage_info/R_SP300/00/spawns.bin" = "res/stage_info/R_SP300/00/spawns.bin"
-"tpgz/stage_info/R_SP301/rooms.bin" = "res/stage_info/R_SP301/rooms.bin"
-"tpgz/stage_info/R_SP301/00/spawns.bin" = "res/stage_info/R_SP301/00/spawns.bin"
-"tpgz/stage_info/S_MV000/rooms.bin" = "res/stage_info/S_MV000/rooms.bin"
-"tpgz/stage_info/S_MV000/00/spawns.bin" = "res/stage_info/S_MV000/00/spawns.bin" \ No newline at end of file
+"tpgz/stage_info" = "res/stage_info" \ No newline at end of file
diff --git a/external/misc/any.py b/external/misc/any.py
index 19bc24b..49be1f8 100644
--- a/external/misc/any.py
+++ b/external/misc/any.py
@@ -1,208 +1,364 @@
+import copy
+from enum import IntEnum
import struct
+class Platform(IntEnum):
+ GCN = 0
+ WII = 1
+
+PLATFORM = Platform.GCN
+
REQ_POS = 1
REQ_CAM = 2
default_entry = {
"requirements": 0,
- "pos": (0.0,0.0,0.0),
+ "pos": (0.0, 0.0, 0.0),
"angle": 0,
- "cam": {"pos":(0,0,0), "target": (0,0,0)},
+ "cam": {"pos": (0, 0, 0), "target": (0, 0, 0)},
"counter": 0,
}
# order matters
file_names = [
- "ordon_gate_clip",
- "ordon_gate_clip",
- "goats",
- "hugo",
- "ems",
- "purple_mist",
- "forest_bit",
- "forest_escape",
- "gorge_void",
- "rupee_roll",
- "lanayru_gate_clip",
- "pillar_clip",
- "lakebed_1",
- "deku_toad",
- "karg",
- "eldin_twilight",
- "lanayru_twilight",
- "waterfall_sidehop",
- "boss_bug",
- "iza",
- "norgor",
- "spr_warp",
- "spr",
- "darkhammer",
+ "ordon_gate_clip",
+ "ordon_gate_clip",
+ "goats",
+ "hugo",
+ "ems",
+ "purple_mist",
+ "forest_bit",
+ "forest_escape",
+ "gorge_void",
+ "rupee_roll",
+ "lanayru_gate_clip",
+ "pillar_clip",
+ "lakebed_1",
+ "deku_toad",
+ "karg",
+ "eldin_twilight",
+ "lanayru_twilight",
+ "waterfall_sidehop",
+ "boss_bug",
+ "iza",
+ "norgor",
+ "spr_warp",
+ "spr",
+ "darkhammer",
"lakebed_bk_skip",
- "onebomb",
- "mdh_tower",
- "mdh_bridge",
- "camp",
- "ag",
- "poe_1_skip",
- "death_sword_skip",
- "stallord",
- "stallord",
- "cits_early",
- "cits_1",
- "aeralfos_skip",
- "cits_2",
- "fan_tower",
- "argorok",
- "palace_1",
- "palace_2",
- "early_platform",
- "zant",
- "hc",
- "darknut",
- "hc_tower",
- "beast_ganon",
+ "onebomb",
+ "mdh_tower",
+ "mdh_bridge",
+ "camp",
+ "ag",
+ "poe_1_skip",
+ "death_sword_skip",
+ "stallord",
+ "stallord",
+ "cits_early",
+ "cits_1",
+ "aeralfos_skip",
+ "cits_2",
+ "fan_tower",
+ "argorok",
+ "palace_1",
+ "palace_2",
+ "early_platform",
+ "zant",
+ "hc",
+ "darknut",
+ "hc_tower",
+ "beast_ganon",
"horseback_ganon",
]
-any_p = [{**default_entry, "id": i, "filename": file_names[i]} for i in range(49)]
+if PLATFORM is Platform.WII:
+ file_names = [
+ "ordon_gate_clip",
+ "bit",
+ "goats",
+ "hugo",
+ "ems",
+ "purple_mist",
+ "forest_temple_1",
+ "early_gale",
+ "deku_like_skip",
+ "diababa",
+ "mailman_skip",
+ "lanayru_gate_clip",
+ "kargarok_fight",
+ "kargarok_flight",
+ "eldin_twilight",
+ "bombhouse_skip",
+ "zora_text_skip",
+ "midna_dive",
+ "lakebed_1",
+ "jake",
+ "lanayru_twilight",
+ "waterfall_sidehop",
+ "boss_bug",
+ "iza",
+ "deku_toad",
+ "morpheel",
+ "mdh_tower",
+ "mdh_bridge",
+ "bublin_camp",
+ "ag",
+ "poe_1_skip",
+ "death_sword",
+ "stallord",
+ "spr",
+ "spr_boost",
+ "spr_freezard",
+ "darkhammer",
+ "early_city",
+ "cits",
+ "arealfos",
+ "cits_2",
+ "cits_tower",
+ "argarok",
+ "palace_1",
+ "palace_2",
+ "early_platform",
+ "zant",
+ "hyrule_castle",
+ "darknut",
+ "tower_climb",
+ "zelda_fight",
+ "horseback_ganon",
+ ]
+
+any_p = [{**copy.deepcopy(default_entry), "id": i, "filename": name}
+ for i, name in enumerate(file_names)]
+
+file_dict = {e: i for i, e in enumerate(file_names)}
+
+
+def update_entry(filename, data):
+ if filename in file_names:
+ any_p[file_dict[filename]] = {**any_p[file_dict[filename]], **data}
+
# ordon gate clip
-any_p[0]["requirements"] = REQ_POS | REQ_CAM
-any_p[0]["pos"] = (827.450012, 216.490097, -4533.90625)
-any_p[0]["angle"] = 498
-any_p[0]["cam"]["pos"] = (833.467468, 477.604675, -4241.97266)
-any_p[0]["cam"]["target"] = (827.497559, 329.622986, -4532.90723)
-any_p[0]["counter"] = 10
+update_entry("ordon_gate_clip", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (827.450012, 216.490097, -4533.90625),
+ 'angle': 498,
+ 'cam': {
+ 'pos': (833.467468, 477.604675, -4241.97266),
+ 'target': (827.497559, 329.622986, -4532.90723)
+ },
+ 'counter': 10
+})
# back in time
-any_p[1]["requirements"] = REQ_POS | REQ_CAM
-any_p[1]["pos"] = (466.622467, 319.770752, -11651.3867)
-any_p[1]["angle"] = 52540
-any_p[1]["cam"]["pos"] = (735.525391, 524.418701, -11576.4746)
-any_p[1]["cam"]["target"] = (465.674622, 421.052704, -11651.0684)
-any_p[1]["counter"] = 10
+update_entry("bit", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (466.622467, 319.770752, -11651.3867),
+ 'angle': 52540,
+ 'cam': {
+ 'pos': (735.525391, 524.418701, -11576.4746),
+ 'target': (465.674622, 421.052704, -11651.0684)
+ },
+ 'counter': 10
+})
# hugo
-any_p[3]["requirements"] = REQ_POS | REQ_CAM
-any_p[3]["pos"] = (701.797302, 85.5212784, -5299.6123)
-any_p[3]["angle"] = 63622
-any_p[3]["cam"]["pos"] = (735.525391, 524.418701, -11576.4746)
-any_p[3]["cam"]["target"] = (465.674622, 421.052704, -11651.0684)
+update_entry("hugo", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (701.797302, 85.5212784, -5299.6123),
+ 'angle': 63622,
+ 'cam': {
+ 'pos': (735.525391, 524.418701, -11576.4746),
+ 'target': (465.674622, 421.052704, -11651.0684)
+ },
+})
# purple mist
-any_p[5]["requirements"] = REQ_POS
-any_p[5]["pos"] = (-23524.6152, 250.0, -16220.166)
-any_p[5]["angle"] = 40758
-any_p[5]["counter"] = 30
+update_entry("purple_mist", {
+ 'requirements': REQ_POS,
+ 'pos': (-23524.6152, 250.0, -16220.166),
+ 'angle': 40758,
+ 'counter': 30
+})
# forest escape
-any_p[7]["requirements"] = REQ_POS | REQ_CAM
-any_p[7]["pos"] = (-12433.6016, -235.969193, -17103.998)
-any_p[7]["angle"] = 29553
-any_p[7]["cam"]["pos"] = (-12552.8252, -53.5801048, -16729.5313)
-any_p[7]["cam"]["target"] = (-12433.2979, -106.667023, -17104.9512)
-any_p[7]["counter"] = 30
+update_entry("forest_escape", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-12433.6016, -235.969193, -17103.998),
+ 'angle': 29553,
+ 'cam': {
+ 'pos': (-12552.8252, -53.5801048, -16729.5313),
+ 'target': (-12433.2979, -106.667023, -17104.9512)
+ },
+ 'counter': 30
+})
# gorge void
-any_p[8]["requirements"] = REQ_POS
-any_p[8]["pos"] = (-9704.47266, -7200.0, 58475.5195)
-any_p[8]["angle"] = 54288
+update_entry("gorge_void", {
+ 'requirements': REQ_POS,
+ 'pos': (-9704.47266, -7200.0, 58475.5195),
+ 'angle': 54288,
+})
# rupee roll
-any_p[9]["requirements"] = REQ_POS | REQ_CAM
-any_p[9]["pos"] = (-11130.208, -5700.0, 56423.1953)
-any_p[9]["angle"] = 31571
-any_p[9]["cam"]["pos"] = (-11178.1504, -5506.71338, 56843.1797)
-any_p[9]["cam"]["target"] = (-11124.4697, -5589.99902, 56373.5195)
-any_p[9]["counter"] = 15
+update_entry("rupee_roll", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-11130.208, -5700.0, 56423.1953),
+ 'angle': 31571,
+ 'cam': {
+ 'pos': (-11178.1504, -5506.71338, 56843.1797),
+ 'target': (-11124.4697, -5589.99902, 56373.5195)
+ },
+ 'counter': 15
+})
# lanayru gate clip
-any_p[10]["requirements"] = REQ_POS | REQ_CAM
-any_p[10]["pos"] = (-63026.2852, -9065.92578, 71680.3438)
-any_p[10]["angle"] = 44248
-any_p[10]["cam"]["pos"] = (-62655.8125, -8900.91309, 71903.6328)
-any_p[10]["cam"]["target"] = (-63064.2148, -8969.97656, 71661.0781)
-any_p[10]["counter"] = 15
+update_entry("lanayru_gate_clip", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-63026.2852, -9065.92578, 71680.3438),
+ 'angle': 44248,
+ 'cam': {
+ 'pos': (-62655.8125, -8900.91309, 71903.6328),
+ 'target': (-63064.2148, -8969.97656, 71661.0781)
+ },
+ 'counter': 15
+})
# eldin twilight
-any_p[15]["requirements"] = REQ_POS | REQ_CAM
-any_p[15]["pos"] = (455.088379, -150.0, 11516.7227)
-any_p[15]["angle"] = 6058
-any_p[15]["cam"]["pos"] = (219.367218, -20.1253014, 11157.582)
-any_p[15]["cam"]["target"] = (482.515137, -39.9999771, 11558.5283)
-any_p[15]["counter"] = 10
+update_entry("eldin_twilight", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (455.088379, -150.0, 11516.7227),
+ 'angle': 6058,
+ 'cam': {
+ 'pos': (219.367218, -20.1253014, 11157.582),
+ 'target': (482.515137, -39.9999771, 11558.5283)
+ },
+ 'counter': 10
+})
# boss bug
-any_p[18]["requirements"] = REQ_POS
-any_p[18]["pos"] = (-89100.00, -18811.2363, 39410.00)
-any_p[18]["angle"] = 21504
+update_entry("boss_bug", {
+ 'requirements': REQ_POS,
+ 'pos': (-89100.00, -18811.2363, 39410.00),
+ 'angle': 21504,
+})
# iza
-any_p[19]["requirements"] = REQ_POS
-any_p[19]["pos"] = (5979.97217, 150.0, -2748.34155)
-any_p[19]["angle"] = 10114
+update_entry("iza", {
+ 'requirements': REQ_POS,
+ 'pos': (5979.97217, 150.0, -2748.34155),
+ 'angle': 10114,
+})
# norgor
-any_p[20]["requirements"] = REQ_POS | REQ_CAM
-any_p[20]["pos"] = (173.71, -186.52, -3633.71)
-any_p[20]["angle"] = 46568
-any_p[20]["cam"]["pos"] = (501.768982, -5.045784, -3586.1145)
-any_p[20]["cam"]["target"] = (174.411758, -70.5306549, -3668.91406)
-any_p[20]["counter"] = 15
+update_entry("norgor", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (173.71, -186.52, -3633.71),
+ 'angle': 46568,
+ 'cam': {
+ 'pos': (501.768982, -5.045784, -3586.1145),
+ 'target': (174.411758, -70.5306549, -3668.91406)
+ },
+ 'counter': 15
+})
# snowpeak messenger skip
-any_p[21]["requirements"] = REQ_POS | REQ_CAM
-any_p[21]["pos"] = (-9294.87988, 980.0, -11712.3838)
-any_p[21]["angle"] = 346
-any_p[21]["cam"]["pos"] = (-9309.65137, 1280.4469, -12130.7695)
-any_p[21]["cam"]["target"] = (-9294.2207, 1180.0, -11692.3945)
-any_p[21]["counter"] = 10
+update_entry("spr_warp", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-9294.87988, 980.0, -11712.3838),
+ 'angle': 346,
+ 'cam': {
+ 'pos': (-9309.65137, 1280.4469, -12130.7695),
+ 'target': (-9294.2207, 1180.0, -11692.3945)
+ },
+ 'counter': 10
+})
# spr
-any_p[22]["requirements"] = REQ_POS
-any_p[22]["pos"] = (0.0, -150.0, 6000.0)
-any_p[22]["angle"] = 33768
+update_entry("spr", {
+ 'requirements': REQ_POS,
+ 'pos': (0.0, -150.0, 6000.0),
+ 'angle': 33768,
+})
# bk skip
-any_p[24]["requirements"] = REQ_POS | REQ_CAM
-any_p[24]["pos"] = (71.9835968, 1500.00, 2839.01587)
-any_p[24]["angle"] = 32767
-any_p[24]["cam"]["pos"] = (71.9835968, 1719.93542, 2969.04565)
-any_p[24]["cam"]["target"] = (71.9835968, 1660.0, 2839.01587)
-any_p[24]["counter"] = 30
+update_entry("lakebed_bk_skip", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (71.9835968, 1500.00, 2839.01587),
+ 'angle': 32767,
+ 'cam': {
+ 'pos': (71.9835968, 1719.93542, 2969.04565),
+ 'target': (71.9835968, 1660.0, 2839.01587)
+ },
+ 'counter': 30
+})
# morpheel
-any_p[25]["requirements"] = REQ_POS | REQ_CAM
-any_p[25]["pos"] = (-1193.0, -23999.00, -770.0)
-any_p[25]["angle"] = 10754
-any_p[25]["counter"] = 20
+update_entry("morpheel", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-1193.0, -23999.00, -770.0),
+ 'angle': 10754,
+ '10754': 20
+})
# poe 1 skip
-any_p[30]["requirements"] = REQ_POS | REQ_CAM
-any_p[30]["pos"] = (-2046.97168, 0.0, -587.304871)
-any_p[30]["angle"] = 49030
-any_p[30]["cam"]["pos"] = (-1779.00293, 213.707397, -584.686768)
-any_p[30]["cam"]["target"] = (-2047.97168, 130.16568, -587.317139)
-any_p[30]["counter"] = 10
+update_entry("poe_1_skip", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (-2046.97168, 0.0, -587.304871),
+ 'angle': 49030,
+ 'cam': {
+ 'pos': (-1779.00293, 213.707397, -584.686768),
+ 'target': (-2047.97168, 130.16568, -587.317139)
+ },
+ 'counter': 10
+})
# city 1
-any_p[35]["requirements"] = REQ_POS | REQ_CAM
-any_p[35]["pos"] = (1309.60645, -240.0, 5533.43848)
-any_p[35]["angle"] = 16384
-any_p[35]["cam"]["pos"] = (1027.53259, -108.096123, 5605.23047)
-any_p[35]["cam"]["target"] = (1313.54285, -234.203003, 5545.16846)
-any_p[35]["counter"] = 10
+update_entry("cits_1", {
+ 'requirements': REQ_POS | REQ_CAM,
+ 'pos': (1309.60645, -240.0, 5533.43848),
+ 'angle': 16384,
+ 'cam': {
+ 'pos': (1027.53259, -108.096123, 5605.23047),
+ 'target': (1313.54285, -234.203003, 5545.16846)
+ },
+ 'counter': 10
+})
+
+# Wii specific entries
+
+update_entry("early_gale", {
+ 'requirements': REQ_POS,
+ 'pos': (-3000, 4302.1, 5084.73),
+ 'angle': 32768,
+ 'counter': 10
+})
+
+update_entry("spr_boost", {
+ 'requirements': REQ_POS,
+ 'pos': (1998.9147, 0.0366, -1984.2080),
+ 'angle': 49152,
+ 'counter': 10
+})
+
+update_entry("midna_dive", {
+ 'requirements': REQ_POS,
+ 'pos': (-89349.5132, -18829.6895, 39521.6523),
+ 'angle': 31044,
+ 'counter': 10
+})
file = open("any.bin", "wb")
for entry in any_p:
print(entry)
file.write(entry["requirements"].to_bytes(1, "big", signed=False))
- file.write(int(0).to_bytes(1, "big", signed=False)) # padding
+ file.write(int(0).to_bytes(1, "big", signed=False)) # padding
file.write(entry["angle"].to_bytes(2, "big", signed=False))
file.write(struct.pack('>fff', *entry["pos"]))
file.write(struct.pack('>fff', *entry["cam"]["pos"]))
file.write(struct.pack('>fff', *entry["cam"]["target"]))
file.write(entry["counter"].to_bytes(4, "big", signed=False))
file.write(struct.pack(">32s", entry["filename"].encode("ascii")))
- file.write(int(0).to_bytes(4, "big", signed=False)) # padding
+ file.write(int(0).to_bytes(4, "big", signed=False)) # padding
diff --git a/external/misc/toml-inject.sh b/external/misc/toml-inject.sh
index 756821f..27b2cf1 100755
--- a/external/misc/toml-inject.sh
+++ b/external/misc/toml-inject.sh
@@ -6,30 +6,35 @@ if [ $1 == "GCN_NTSCU" ] ; then
BLD_ISO="build/tpgz.iso"
BLD_MAP="build/GZ2E01.map"
LINK_BASE="0x8046_0000"
+ SAVES_PATH="res/save_files"
elif [ $1 == "GCN_NTSCJ" ] ; then
SRC_ISO="GZ2J01.iso"
SRC_MAP="map/Final/Release/frameworkF.map"
BLD_ISO="build/tpgz.iso"
BLD_MAP="build/GZ2J01.map"
LINK_BASE="0x8046_0000"
+ SAVES_PATH="res/save_files"
elif [ $1 == "GCN_PAL" ]; then
SRC_ISO="GZ2P01.iso"
SRC_MAP="map/Final/Release/frameworkF.map"
BLD_ISO="build/tpgz.iso"
BLD_MAP="build/GZ2P01.map"
LINK_BASE="0x8046_0000"
+ SAVES_PATH="res/save_files"
elif [ $1 == "WII_NTSCU_10" ]; then
SRC_ISO="RZDE01.iso"
SRC_MAP="map/Rfinal/Release/RframeworkF.map"
BLD_ISO="build/tpgzw.iso"
BLD_MAP="build/RZDE01.map"
LINK_BASE="0x8056_0000"
+ SAVES_PATH="res/save_files_wii"
elif [ $1 == "WII_PAL" ]; then
SRC_ISO="RZDP01.iso"
SRC_MAP="map/Rfinal/Release/RframeworkF.map"
BLD_ISO="build/tpgzw.iso"
BLD_MAP="build/RZDP01.map"
LINK_BASE="0x8053_8000"
+ SAVES_PATH="res/save_files_wii"
else
echo "Invalid region: $1"
exit 1
@@ -41,3 +46,4 @@ sed -i "s=@srcMap=$SRC_MAP=g" RomHack.toml
sed -i "s=@bldIso=$BLD_ISO=g" RomHack.toml
sed -i "s=@bldMap=$BLD_MAP=g" RomHack.toml
sed -i "s=@linkBase=$LINK_BASE=g" RomHack.toml
+sed -i "s=@savesPath=$SAVES_PATH=g" RomHack.toml
diff --git a/include/menus/any_saves_menu.h b/include/menus/any_saves_menu.h
index a197a61..a71a711 100644
--- a/include/menus/any_saves_menu.h
+++ b/include/menus/any_saves_menu.h
@@ -1,5 +1,6 @@
#include "menu.h"
+#ifdef GCN_PLATFORM
#define ANY_SPECIALS_AMNT 19
enum AnyPracticeIndex {
@@ -53,6 +54,64 @@ enum AnyPracticeIndex {
BEAST_GANON_INDEX,
HORSEBACK_GANON_INDEX
};
+#endif
+#ifdef WII_PLATFORM
+#define ANY_SPECIALS_AMNT 11
+enum AnyPracticeIndex {
+ ORDON_GATE_CLIP_INDEX,
+ BACK_IN_TIME_INDEX,
+ GOATS_INDEX,
+ HUGO_INDEX,
+ EMS_INDEX,
+ MIST_INDEX,
+ FRST_INDEX,
+ EARLY_GALE_INDEX,
+ DEKU_LIKE_INDEX,
+ DIABABA_INDEX,
+ MAILMAN_SKIP_INDEX,
+ LANAYRU_GATE_CLIP_INDEX,
+ KARG_FIGHT_INDEX,
+ KARG_FLIGHT_INDEX,
+ ELDIN_TWILIGHT_INDEX,
+ BOMBHOUSE_SKIP_INDEX,
+ MIDNA_TEXT_SKIP_INDEX,
+ MIDNA_DIVE_INDEX,
+ LAKEBED_1_INDEX,
+ JAKE_INDEX,
+ LANAYRU_TWILIGHT_INDEX,
+ WATERFALL_SIDEHOP_INDEX,
+ BOSS_BUG_INDEX,
+ IZA_INDEX,
+ TOAD_INDEX,
+ MORPHEEL_INDEX,
+ MDH_TOWER_INDEX,
+ MDH_BRIDGE_INDEX,
+ BULBLIN_CAMP_INDEX,
+ AG_INDEX,
+ POE_1_SKIP_INDEX,
+ DSS_INDEX,
+ STALLORD_INDEX,
+ SPR_INDEX,
+ SPR_BOOST_INDEX,
+ SPR_FREEZARD_INDEX,
+ DARK_HAMMER_INDEX,
+ CITS_EARLY_INDEX,
+ CITS_1_INDEX,
+ AERALFOS_SKIP_INDEX,
+ CITS_2_INDEX,
+ FAN_TOWER_INDEX,
+ ARGOROK_INDEX,
+ PALACE_1_INDEX,
+ PALACE_2_INDEX,
+ EARLY_PLATFORM_INDEX,
+ ZANT_INDEX,
+ HC_INDEX,
+ DARKNUT_INDEX,
+ HC_TOWER_INDEX,
+ BEAST_GANON_INDEX,
+ HORSEBACK_GANON_INDEX
+};
+#endif
class AnySavesMenu : public Menu {
public:
diff --git a/res/save_files_wii/any.bin b/res/save_files_wii/any.bin
new file mode 100644
index 0000000..04b250e
--- /dev/null
+++ b/res/save_files_wii/any.bin
Binary files differ
diff --git a/res/save_files_wii/any/ag.bin b/res/save_files_wii/any/ag.bin
new file mode 100644
index 0000000..c1ef587
--- /dev/null
+++ b/res/save_files_wii/any/ag.bin
Binary files differ
diff --git a/res/save_files_wii/any/arealfos.bin b/res/save_files_wii/any/arealfos.bin
new file mode 100644
index 0000000..cddceb9
--- /dev/null
+++ b/res/save_files_wii/any/arealfos.bin
Binary files differ
diff --git a/res/save_files_wii/any/argarok.bin b/res/save_files_wii/any/argarok.bin
new file mode 100644
index 0000000..8c73f70
--- /dev/null
+++ b/res/save_files_wii/any/argarok.bin
Binary files differ
diff --git a/res/save_files_wii/any/bit.bin b/res/save_files_wii/any/bit.bin
new file mode 100644
index 0000000..3ab1445
--- /dev/null
+++ b/res/save_files_wii/any/bit.bin
Binary files differ
diff --git a/res/save_files_wii/any/bombhouse_skip.bin b/res/save_files_wii/any/bombhouse_skip.bin
new file mode 100644
index 0000000..8163a93
--- /dev/null
+++ b/res/save_files_wii/any/bombhouse_skip.bin
Binary files differ
diff --git a/res/save_files_wii/any/boss_bug.bin b/res/save_files_wii/any/boss_bug.bin
new file mode 100644
index 0000000..9b572f5
--- /dev/null
+++ b/res/save_files_wii/any/boss_bug.bin
Binary files differ
diff --git a/res/save_files_wii/any/bublin_camp.bin b/res/save_files_wii/any/bublin_camp.bin
new file mode 100644
index 0000000..52fd7ba
--- /dev/null
+++ b/res/save_files_wii/any/bublin_camp.bin
Binary files differ
diff --git a/res/save_files_wii/any/cits.bin b/res/save_files_wii/any/cits.bin
new file mode 100644
index 0000000..6af5e3a
--- /dev/null
+++ b/res/save_files_wii/any/cits.bin
Binary files differ
diff --git a/res/save_files_wii/any/cits_2.bin b/res/save_files_wii/any/cits_2.bin
new file mode 100644
index 0000000..5d55894
--- /dev/null
+++ b/res/save_files_wii/any/cits_2.bin
Binary files differ
diff --git a/res/save_files_wii/any/cits_tower.bin b/res/save_files_wii/any/cits_tower.bin
new file mode 100644
index 0000000..6059920
--- /dev/null
+++ b/res/save_files_wii/any/cits_tower.bin
Binary files differ
diff --git a/res/save_files_wii/any/darkhammer.bin b/res/save_files_wii/any/darkhammer.bin
new file mode 100644
index 0000000..af199af
--- /dev/null
+++ b/res/save_files_wii/any/darkhammer.bin
Binary files differ
diff --git a/res/save_files_wii/any/darknut.bin b/res/save_files_wii/any/darknut.bin
new file mode 100644
index 0000000..67c8c3c
--- /dev/null
+++ b/res/save_files_wii/any/darknut.bin
Binary files differ
diff --git a/res/save_files_wii/any/death_sword.bin b/res/save_files_wii/any/death_sword.bin
new file mode 100644
index 0000000..24ab3d1
--- /dev/null
+++ b/res/save_files_wii/any/death_sword.bin
Binary files differ
diff --git a/res/save_files_wii/any/deku_like_skip.bin b/res/save_files_wii/any/deku_like_skip.bin
new file mode 100644
index 0000000..6544df3
--- /dev/null
+++ b/res/save_files_wii/any/deku_like_skip.bin
Binary files differ
diff --git a/res/save_files_wii/any/deku_toad.bin b/res/save_files_wii/any/deku_toad.bin
new file mode 100644
index 0000000..6b7d4a9
--- /dev/null
+++ b/res/save_files_wii/any/deku_toad.bin
Binary files differ
diff --git a/res/save_files_wii/any/diababa.bin b/res/save_files_wii/any/diababa.bin
new file mode 100644
index 0000000..b44b01f
--- /dev/null
+++ b/res/save_files_wii/any/diababa.bin
Binary files differ
diff --git a/res/save_files_wii/any/early_city.bin b/res/save_files_wii/any/early_city.bin
new file mode 100644
index 0000000..8435745
--- /dev/null
+++ b/res/save_files_wii/any/early_city.bin
Binary files differ
diff --git a/res/save_files_wii/any/early_gale.bin b/res/save_files_wii/any/early_gale.bin
new file mode 100644
index 0000000..7b15d33
--- /dev/null
+++ b/res/save_files_wii/any/early_gale.bin
Binary files differ
diff --git a/res/save_files_wii/any/early_platform.bin b/res/save_files_wii/any/early_platform.bin
new file mode 100644
index 0000000..ac2b0e0
--- /dev/null
+++ b/res/save_files_wii/any/early_platform.bin
Binary files differ
diff --git a/res/save_files_wii/any/eldin_twilight.bin b/res/save_files_wii/any/eldin_twilight.bin
new file mode 100644
index 0000000..78170bb
--- /dev/null
+++ b/res/save_files_wii/any/eldin_twilight.bin
Binary files differ
diff --git a/res/save_files_wii/any/ems.bin b/res/save_files_wii/any/ems.bin
new file mode 100644
index 0000000..38a5fef
--- /dev/null
+++ b/res/save_files_wii/any/ems.bin
Binary files differ
diff --git a/res/save_files_wii/any/forest_temple_1.bin b/res/save_files_wii/any/forest_temple_1.bin
new file mode 100644
index 0000000..53b84f4
--- /dev/null
+++ b/res/save_files_wii/any/forest_temple_1.bin
Binary files differ
diff --git a/res/save_files_wii/any/goats.bin b/res/save_files_wii/any/goats.bin
new file mode 100644
index 0000000..4c501d0
--- /dev/null
+++ b/res/save_files_wii/any/goats.bin
Binary files differ
diff --git a/res/save_files_wii/any/horseback_ganon.bin b/res/save_files_wii/any/horseback_ganon.bin
new file mode 100644
index 0000000..3b11484
--- /dev/null
+++ b/res/save_files_wii/any/horseback_ganon.bin
Binary files differ
diff --git a/res/save_files_wii/any/hugo.bin b/res/save_files_wii/any/hugo.bin
new file mode 100644
index 0000000..a240658
--- /dev/null
+++ b/res/save_files_wii/any/hugo.bin
Binary files differ
diff --git a/res/save_files_wii/any/hyrule_castle.bin b/res/save_files_wii/any/hyrule_castle.bin
new file mode 100644
index 0000000..9e4f573
--- /dev/null
+++ b/res/save_files_wii/any/hyrule_castle.bin
Binary files differ
diff --git a/res/save_files_wii/any/iza.bin b/res/save_files_wii/any/iza.bin
new file mode 100644
index 0000000..f2bc9cd
--- /dev/null
+++ b/res/save_files_wii/any/iza.bin
Binary files differ
diff --git a/res/save_files_wii/any/jake.bin b/res/save_files_wii/any/jake.bin
new file mode 100644
index 0000000..1673f6c
--- /dev/null
+++ b/res/save_files_wii/any/jake.bin
Binary files differ
diff --git a/res/save_files_wii/any/kargarok_fight.bin b/res/save_files_wii/any/kargarok_fight.bin
new file mode 100644
index 0000000..3664663
--- /dev/null
+++ b/res/save_files_wii/any/kargarok_fight.bin
Binary files differ
diff --git a/res/save_files_wii/any/kargarok_flight.bin b/res/save_files_wii/any/kargarok_flight.bin
new file mode 100644
index 0000000..1d229c3
--- /dev/null
+++ b/res/save_files_wii/any/kargarok_flight.bin
Binary files differ
diff --git a/res/save_files_wii/any/lakebed_1.bin b/res/save_files_wii/any/lakebed_1.bin
new file mode 100644
index 0000000..c6e4f2a
--- /dev/null
+++ b/res/save_files_wii/any/lakebed_1.bin
Binary files differ
diff --git a/res/save_files_wii/any/lanayru_gate_clip.bin b/res/save_files_wii/any/lanayru_gate_clip.bin
new file mode 100644
index 0000000..0de0b00
--- /dev/null
+++ b/res/save_files_wii/any/lanayru_gate_clip.bin
Binary files differ
diff --git a/res/save_files_wii/any/lanayru_twilight.bin b/res/save_files_wii/any/lanayru_twilight.bin
new file mode 100644
index 0000000..b693c56
--- /dev/null
+++ b/res/save_files_wii/any/lanayru_twilight.bin
Binary files differ
diff --git a/res/save_files_wii/any/mailman_skip.bin b/res/save_files_wii/any/mailman_skip.bin
new file mode 100644
index 0000000..06e8f25
--- /dev/null
+++ b/res/save_files_wii/any/mailman_skip.bin
Binary files differ
diff --git a/res/save_files_wii/any/mdh_bridge.bin b/res/save_files_wii/any/mdh_bridge.bin
new file mode 100644
index 0000000..66489fd
--- /dev/null
+++ b/res/save_files_wii/any/mdh_bridge.bin
Binary files differ
diff --git a/res/save_files_wii/any/mdh_tower.bin b/res/save_files_wii/any/mdh_tower.bin
new file mode 100644
index 0000000..1c9453a
--- /dev/null
+++ b/res/save_files_wii/any/mdh_tower.bin
Binary files differ
diff --git a/res/save_files_wii/any/midna_dive.bin b/res/save_files_wii/any/midna_dive.bin
new file mode 100644
index 0000000..94875b9
--- /dev/null
+++ b/res/save_files_wii/any/midna_dive.bin
Binary files differ
diff --git a/res/save_files_wii/any/morpheel.bin b/res/save_files_wii/any/morpheel.bin
new file mode 100644
index 0000000..8f69941
--- /dev/null
+++ b/res/save_files_wii/any/morpheel.bin
Binary files differ
diff --git a/res/save_files_wii/any/ordon_gate_clip.bin b/res/save_files_wii/any/ordon_gate_clip.bin
new file mode 100644
index 0000000..3ab1445
--- /dev/null
+++ b/res/save_files_wii/any/ordon_gate_clip.bin
Binary files differ
diff --git a/res/save_files_wii/any/palace_1.bin b/res/save_files_wii/any/palace_1.bin
new file mode 100644
index 0000000..fa6dece
--- /dev/null
+++ b/res/save_files_wii/any/palace_1.bin
Binary files differ
diff --git a/res/save_files_wii/any/palace_2.bin b/res/save_files_wii/any/palace_2.bin
new file mode 100644
index 0000000..ef30d06
--- /dev/null
+++ b/res/save_files_wii/any/palace_2.bin
Binary files differ
diff --git a/res/save_files_wii/any/poe_1_skip.bin b/res/save_files_wii/any/poe_1_skip.bin
new file mode 100644
index 0000000..990c1fc
--- /dev/null
+++ b/res/save_files_wii/any/poe_1_skip.bin
Binary files differ
diff --git a/res/save_files_wii/any/purple_mist.bin b/res/save_files_wii/any/purple_mist.bin
new file mode 100644
index 0000000..5b6e86a
--- /dev/null
+++ b/res/save_files_wii/any/purple_mist.bin
Binary files differ
diff --git a/res/save_files_wii/any/spr.bin b/res/save_files_wii/any/spr.bin
new file mode 100644
index 0000000..47ae4eb
--- /dev/null
+++ b/res/save_files_wii/any/spr.bin
Binary files differ
diff --git a/res/save_files_wii/any/spr_boost.bin b/res/save_files_wii/any/spr_boost.bin
new file mode 100644
index 0000000..2834148
--- /dev/null
+++ b/res/save_files_wii/any/spr_boost.bin
Binary files differ
diff --git a/res/save_files_wii/any/spr_freezard.bin b/res/save_files_wii/any/spr_freezard.bin
new file mode 100644
index 0000000..34a5d0b
--- /dev/null
+++ b/res/save_files_wii/any/spr_freezard.bin
Binary files differ
diff --git a/res/save_files_wii/any/stallord.bin b/res/save_files_wii/any/stallord.bin
new file mode 100644
index 0000000..e1d6518
--- /dev/null
+++ b/res/save_files_wii/any/stallord.bin
Binary files differ
diff --git a/res/save_files_wii/any/tower_climb.bin b/res/save_files_wii/any/tower_climb.bin
new file mode 100644
index 0000000..4cbd7e8
--- /dev/null
+++ b/res/save_files_wii/any/tower_climb.bin
Binary files differ
diff --git a/res/save_files_wii/any/waterfall_sidehop.bin b/res/save_files_wii/any/waterfall_sidehop.bin
new file mode 100644
index 0000000..90b1418
--- /dev/null
+++ b/res/save_files_wii/any/waterfall_sidehop.bin
Binary files differ
diff --git a/res/save_files_wii/any/zant.bin b/res/save_files_wii/any/zant.bin
new file mode 100644
index 0000000..811bed4
--- /dev/null
+++ b/res/save_files_wii/any/zant.bin
Binary files differ
diff --git a/res/save_files_wii/any/zelda_fight.bin b/res/save_files_wii/any/zelda_fight.bin
new file mode 100644
index 0000000..4d67174
--- /dev/null
+++ b/res/save_files_wii/any/zelda_fight.bin
Binary files differ
diff --git a/res/save_files_wii/any/zora_text_skip.bin b/res/save_files_wii/any/zora_text_skip.bin
new file mode 100644
index 0000000..65dbbbf
--- /dev/null
+++ b/res/save_files_wii/any/zora_text_skip.bin
Binary files differ
diff --git a/src/menus/any_saves_menu.cpp b/src/menus/any_saves_menu.cpp
index 9eaa6a4..dd5522d 100644
--- a/src/menus/any_saves_menu.cpp
+++ b/src/menus/any_saves_menu.cpp
@@ -2,10 +2,10 @@
#include "gz_flags.h"
#include "save_specials.h"
-#define LINE_NUM 49
-
Cursor AnySavesMenu::cursor;
+#ifdef GCN_PLATFORM
+#define LINE_NUM 49
Line lines[LINE_NUM] = {
{"ordon gate clip", ORDON_GATE_CLIP_INDEX, "Gate Clip outside Ordon Spring"},
{"back in time", BACK_IN_TIME_INDEX, "Back in Time off the Ordon Spring bridge"},
@@ -57,8 +57,67 @@ Line lines[LINE_NUM] = {
{"beast ganon", BEAST_GANON_INDEX, "The Beast Ganon fight"},
{"horseback ganon", HORSEBACK_GANON_INDEX, "The Horseback Ganondorf fight"},
};
+#endif
+#ifdef WII_PLATFORM
+#define LINE_NUM 52
+Line lines[LINE_NUM] = {
+ {"ordon gate clip", ORDON_GATE_CLIP_INDEX, "Gate Clip outside Ordon Spring"},
+ {"back in time", BACK_IN_TIME_INDEX, "Back In Time off the Ordon Spring bridge"},
+ {"goats", GOATS_INDEX, "Goat herding 2"},
+ {"sword and shield skip", HUGO_INDEX, "Hangin' with Hugo"},
+ {"early master sword", EMS_INDEX, "Super Jump to early Sacred Grove"},
+ {"purple mist", MIST_INDEX, "Purple mist in Faron Woods (post-EMS)"},
+ {"forest temple", FRST_INDEX, "first entry into Forest Temple"},
+ {"early gale", EARLY_GALE_INDEX, "Platforming to Ook"},
+ {"deku like skip", DEKU_LIKE_INDEX, "frame perfect jump from the deku like platform"},
+ {"diababa", DIABABA_INDEX, "diababa fight"},
+ {"mailman skip", MAILMAN_SKIP_INDEX, "jump attack over mailman trigger twice"},
+ {"lanayru gate clip", LANAYRU_GATE_CLIP_INDEX, "gate clip outside Lake Hylia"},
+ {"kargorok fight", KARG_FIGHT_INDEX, "fight with the kargarok"},
+ {"kargorok flight", KARG_FLIGHT_INDEX, "clip OoB with trumpet bird"},
+ {"eldin twilight", ELDIN_TWILIGHT_INDEX, "eldin Twilight tears"},
+ {"bombhouse skip", BOMBHOUSE_SKIP_INDEX, "jump from the bomb shop to the bombhouse"},
+ {"midna text skip", MIDNA_TEXT_SKIP_INDEX, "frame perfect sidehop to skip midna text"},
+ {"midna dive", MIDNA_DIVE_INDEX, "Pillar Clip in Lake Hylia (high water)"},
+ {"lakebed 1", LAKEBED_1_INDEX, "The first Lakebed Temple segment"},
+ {"jake", JAKE_INDEX, "use the helmasaur (jake) to LJA to the upper ledge"},
+ {"lanayru twilight", LANAYRU_TWILIGHT_INDEX, "Lanayru Twilight tears"},
+ {"waterfall sidehop", WATERFALL_SIDEHOP_INDEX, "Waterfall sidehop after Rutela skip"},
+ {"boss bug", BOSS_BUG_INDEX, "Lanayru Twilight boss bug"},
+ {"iza", IZA_INDEX, "Steal Iza's bomb bag"},
+ {"deku toad", TOAD_INDEX, "The miniboss of Lakebed Temple"},
+ {"morpheel", MORPHEEL_INDEX, "Morpheel fight (no Zora Armor)"},
+ {"mdh tower", MDH_TOWER_INDEX, "MDH tower climb before castle rooftops"},
+ {"mdh bridge", MDH_BRIDGE_INDEX, "The falling bridge on castle rooftops"},
+ {"bulblin camp", BULBLIN_CAMP_INDEX, "The area before Arbiter's Grounds"},
+ {"arbiter's grounds", AG_INDEX, "The Arbiter's Grounds segment"},
+ {"poe 1 skip", POE_1_SKIP_INDEX, "The pillar jump in Arbiter's Grounds"},
+ {"death sword", DSS_INDEX, "The Arbiter's Grounds miniboss"},
+ {"stallord", STALLORD_INDEX, "The Arbiter's Grounds boss"},
+ {"snowpeak", SPR_INDEX, "The Snowpeak Ruins dungeon segment"},
+ {"snowpeak spinner bomb boost", SPR_BOOST_INDEX, "spinner bomb boost over the wall."},
+ {"freezard clip", SPR_FREEZARD_INDEX, "clip through the door behind freezard"},
+ {"dark hammer", DARK_HAMMER_INDEX, "The Snowpeak Ruins miniboss"},
+ {"city in the sky early", CITS_EARLY_INDEX, "Clip to the cannon early"},
+ {"city in the sky 1", CITS_1_INDEX, "The first City in the Sky segment"},
+ {"aeralfos skip", AERALFOS_SKIP_INDEX, "The City in the Sky miniboss"},
+ {"city in the sky 2", CITS_2_INDEX, "The second City in the Sky segment"},
+ {"fan tower", FAN_TOWER_INDEX, "Final fan room in CitS before the boss"},
+ {"argorok", ARGOROK_INDEX, "The City in the Sky boss"},
+ {"palace of twilight 1", PALACE_1_INDEX, "The first Palace of Twilight segment"},
+ {"palace of twilight 2", PALACE_2_INDEX,
+ "The second Palace of Twilight segment (after both Sols)"},
+ {"early platform", EARLY_PLATFORM_INDEX, "Early platform in Palace of Twilight"},
+ {"zant", ZANT_INDEX, "The Palace of Twilight boss"},
+ {"hyrule castle", HC_INDEX, "The Hyrule Castle segment"},
+ {"darknut fight", DARKNUT_INDEX, "The Darknut fight in Hyrule Castle"},
+ {"final tower climb", HC_TOWER_INDEX, "The tower climb before the final boss fights"},
+ {"beast ganon", BEAST_GANON_INDEX, "The Beast Ganon fight"},
+ {"horseback ganon", HORSEBACK_GANON_INDEX, "The horseback Ganondorf fight"}};
+#endif
void AnySavesMenu::draw() {
+#ifdef GCN_PLATFORM
special AnySpecials[ANY_SPECIALS_AMNT] = {
special(HUGO_INDEX, SaveMngSpecial_Hugo, SaveMngSpecial_SpawnHugo),
special(KARG_INDEX, SaveMngSpecial_KargOoB, nullptr),
@@ -80,6 +139,22 @@ void AnySavesMenu::draw() {
special(PALACE_1_INDEX, SaveMngSpecial_Palace1, nullptr),
special(PALACE_2_INDEX, nullptr, SaveMngSpecial_Palace2),
};
+#endif
+#ifdef WII_PLATFORM
+ special AnySpecials[ANY_SPECIALS_AMNT] = {
+ special(HUGO_INDEX, SaveMngSpecial_Hugo, SaveMngSpecial_SpawnHugo),
+ special(KARG_FLIGHT_INDEX, SaveMngSpecial_KargOoB, nullptr),
+ special(MORPHEEL_INDEX, nullptr, SaveMngSpecial_Morpheel),
+ special(STALLORD_INDEX, SaveMngSpecial_Stallord, nullptr),
+ special(LAKEBED_1_INDEX, SaveMngSpecial_BossFlags, nullptr),
+ special(WATERFALL_SIDEHOP_INDEX, SaveMngSpecial_WaterfallSidehop, nullptr),
+ special(DARK_HAMMER_INDEX, SaveMngSpecial_BossFlags, SaveMngSpecial_Darkhammer),
+ special(FAN_TOWER_INDEX, SaveMngSpecial_FanTower, nullptr),
+ special(ARGOROK_INDEX, SaveMngSpecial_Argorok, nullptr),
+ special(PALACE_1_INDEX, SaveMngSpecial_Palace1, nullptr),
+ special(PALACE_2_INDEX, nullptr, SaveMngSpecial_Palace2),
+ };
+#endif
if (GZ_getButtonTrig(BACK_BUTTON)) {
GZ_setMenu(GZ_PRACTICE_MENU);
@@ -87,9 +162,10 @@ void AnySavesMenu::draw() {
}
if (GZ_getButtonTrig(SELECTION_BUTTON)) {
- SaveManager::loadSave(cursor.y, "any", AnySpecials, ANY_SPECIALS_AMNT);
+ SaveManager::loadSave(cursor.y, "any", AnySpecials,
+ sizeof(AnySpecials) / sizeof(AnySpecials[0]));
}
- cursor.move(0, LINE_NUM);
- GZ_drawMenuLines(lines, cursor.y, LINE_NUM);
+ cursor.move(0, sizeof(lines) / sizeof(lines[0]));
+ GZ_drawMenuLines(lines, cursor.y, sizeof(lines) / sizeof(lines[0]));
} \ No newline at end of file