gameboy_worlds.emulation.legend_of_zelda.registry

  1from typing import Optional, Union, Type, Dict
  2from gameboy_worlds.emulation.parser import StateParser
  3from gameboy_worlds.emulation.tracker import StateTracker
  4from gameboy_worlds.emulation.emulator import Emulator
  5
  6from gameboy_worlds.emulation.legend_of_zelda.parsers import (
  7    LegendOfZeldaLinksAwakeningParser,
  8    LegendOfZeldaTheOracleOfSeasonsParser,
  9)
 10
 11from gameboy_worlds.emulation.legend_of_zelda.trackers import (
 12    LegendOfZeldaOCRTracker,
 13    ZeldaLinksAwakeningOwlTestTracker,
 14    ZeldaLinksAwakeningShieldTestTracker,
 15    ZeldaLinksAwakeningOutsideTarinHouseTestTracker,
 16    ZeldaLinksAwakeningOpenInventoryTestTracker,
 17    ZeldaLinksAwakeningWeaponTestTracker,
 18    ZeldaLinksAwakeningInventoryWeaponEquipTestTracker,
 19    ZeldaLinksAwakeningTalkToKidTestTracker,
 20    ZeldaLinksAwakeningStatueTalkTestTracker,
 21    ZeldaLinksAwakeningReadSignboardTestTracker,
 22    ZeldaLinksAwakeningGoInsideShopTestTracker,
 23    ZeldaLinksAwakeningMakeCallTestTracker,
 24    ZeldaLinksAwakeningEnterDarkForestTestTracker,
 25    ZeldaLinksAwakeningInsideTunnelTestTracker,
 26    ZeldaLinksAwakeningOpenChestTestTracker,
 27    ZeldaLinksAwakeningChestOpenerTestTracker,
 28    ZeldaLinksAwakeningHeartTakeTestTracker,
 29    ZeldaLinksAwakeningShroomTakeTestTracker,
 30    ZeldaLinksAwakeningShroomSwordTestTracker,
 31    ZeldaLinksAwakeningShroomShieldTestTracker,
 32    ZeldaLinksAwakeningSignCheckerTestTracker,
 33    ZeldaLinksAwakeningWaterCheckerTestTracker,
 34    ZeldaLinksAwakeningMakeCall2TestTracker,
 35    ZeldaLinksAwakeningSkeletonTestTracker,
 36    ZeldaLinksAwakeningUndergroundTestTracker,
 37    ZeldaLinksAwakeningKidTalkTestTracker,
 38    ZeldaLinksAwakeningInsideHouseTestTracker,
 39    ZeldaLinksAwakeningPotRoomTestTracker,
 40    ZeldaLinksAwakeningPondTestTracker,
 41    ZeldaLinksAwakeningWeirdTunnelInsideTestTracker,
 42    ZeldaLinksAwakeningWitchTalkTestTracker,
 43    ZeldaLinksAwakeningSignboardReaderTestTracker,
 44    ZeldaLinksAwakeningPineappleScreenTracker,
 45    ZeldaLinksAwakeningCallBoothApproachTracker,
 46    ZeldaLinksAwakeningGrannyCornerTracker,
 47    ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker,
 48    ZeldaLinksAwakeningLeaveTrackTracker,
 49    ZeldaLinksAwakeningExitFatHouseTracker,
 50    ZeldaLinksAwakeningBoothHouseUpTracker,
 51    ZeldaLinksAwakeningChickHouseBlockTracker,
 52    ZeldaLinksAwakeningPurplestoneStairsTracker,
 53    ZeldaLinksAwakeningHeavyStonePushTracker,
 54    ZeldaLinksAwakeningBoyDialogueExitTracker,
 55    ZeldaLinksAwakeningDirtPatchTracker,
 56    ZeldaLinksAwakeningDirtPatchTwoTracker,
 57    ZeldaLinksAwakeningStonehouseRightTreeTracker,
 58    ZeldaLinksAwakeningSecondBoyDialogueExitTracker,
 59    ZeldaLinksAwakeningRailingJumpTracker,
 60    ZeldaLinksAwakeningPalmtJumpTracker,
 61    ZeldaLinksAwakeningMonsterDeathTracker,
 62    ZeldaLinksAwakeningTileslongEscapeTracker,
 63    ZeldaLinksAwakeningBoardSignApproachTracker,
 64    ZeldaOracleOfSeasonsOtherPeopleTracker,
 65    ZeldaOracleOfSeasonsGirlTalkTracker,
 66    ZeldaOracleOfSeasonsJumpingTracker,
 67    ZeldaOracleOfSeasonsFarmerTalkTracker,
 68    ZeldaOracleOfSeasonsLibraryTracker,
 69    ZeldaOracleOfSeasonsParrotTalkTracker,
 70    ZeldaOracleOfSeasonsFallTracker,
 71    ZeldaOracleOfSeasonsStairsTracker,
 72    ZeldaOracleOfSeasonsSignboardReadTracker,
 73    ZeldaOracleOfSeasonsShopInsideTracker,
 74    ZeldaOracleOfSeasonsShopPersonTalkTracker,
 75    ZeldaOracleOfSeasonsGirlHouseTracker,
 76    ZeldaOracleOfSeasonsPotInteractionTracker,
 77    ZeldaOracleOfSeasonsInsideTunnelTracker,
 78    ZeldaOracleOfSeasonsArtistTalkTracker,
 79    ZeldaOracleOfSeasonsChickenHouseTracker,
 80    ZeldaOracleOfSeasonsJigglyPathWalkTracker,
 81    ZeldaOracleOfSeasonsFairyMeetTracker,
 82    ZeldaOracleOfSeasonsThingInteractionTracker,
 83    ZeldaOracleOfSeasonsInventoryOpenTracker,
 84    ZeldaOracleOfSeasonsClockTowerSignReadTracker,
 85    ZeldaOracleOfSeasonsNearStairsTracker,
 86    ZeldaOracleOfSeasonsTalkToGirlTracker,
 87    ZeldaOracleOfSeasonsPierGoTracker,
 88    ZeldaOracleOfSeasonsBoardwalkTracker,
 89    ZeldaOracleOfSeasonsCatCheckTracker,
 90    ZeldaOracleOfSeasonsCatTalkTracker,
 91    ZeldaOracleOfSeasonsOwnerTalkTracker,
 92    ZeldaOracleOfSeasonsBridgeWalkTracker,
 93    ZeldaOracleOfSeasonsDogTracker,
 94    ZeldaOracleOfSeasonsMickeyLeftTracker,
 95    ZeldaOracleOfSeasonsStepOffGrassBlockTracker,
 96    ZeldaOracleOfSeasonsShopSignPathTracker,
 97    ZeldaOracleOfSeasonsClocksUpTracker,
 98    ZeldaOracleOfSeasonsJoystickRightTracker,
 99    ZeldaOracleOfSeasonsJoystickHouseEntryTracker,
100    ZeldaOracleOfSeasonsApproachRedSnakeTracker,
101    ZeldaOracleOfSeasonsApproachBlueSnakeTracker,
102    ZeldaOracleOfSeasonsRedSnakeTalkTracker,
103    ZeldaOracleOfSeasonsBlueSnakeTalkTracker,
104    ZeldaOracleOfSeasonsBlueBookReadTracker,
105    ZeldaOracleOfSeasonsRedBookReadTracker,
106    ZeldaOracleOfSeasonsLavaFloorTracker,
107    ZeldaOracleOfSeasonsStepOffTrackTracker,
108    ZeldaOracleOfSeasonsGloomyPlaceLeftTracker,
109    ZeldaOracleOfSeasonsGameoverDeathTracker,
110    ZeldaOracleOfSeasonsLeaveGreenCarpetTracker,
111    ZeldaOracleOfSeasonsHolesToTrunkTracker,
112    ZeldaOracleOfSeasonsTrunkToHolesTracker,
113    ZeldaOracleOfSeasonsLeftOfTrunkTracker,
114)
115
116
117
118GAME_TO_GB_NAME = {
119    "legend_of_zelda_links_awakening": "LegendOfZeldaLinksAwakening.gbc",
120    "legend_of_zelda_the_oracle_of_seasons": "LegendOfZeldaTheOracleOfSeasons.gbc",
121}
122""" Expected save name for each game. Save the file to <storage_dir_from_config_file>/<game_name>_rom_data/<gb_name>"""
123
124STRONGEST_PARSERS: Dict[str, Type[StateParser]] = {
125    "legend_of_zelda_links_awakening": LegendOfZeldaLinksAwakeningParser,
126    "legend_of_zelda_the_oracle_of_seasons": LegendOfZeldaTheOracleOfSeasonsParser,
127}
128""" Mapping of game names to their corresponding strongest StateParser classes. 
129Unless you have a very good reason, you should always use the STRONGEST possible parser for a given game. 
130The parser itself does not affect performance, as for it to perform a read / screen comparison operation , it must be called upon by the state tracker.
131This means there is never a reason to use a weaker parser. 
132"""
133
134
135AVAILABLE_STATE_TRACKERS: Dict[str, Dict[str, Type[StateTracker]]] = {
136    "legend_of_zelda_links_awakening": {
137        "default": LegendOfZeldaOCRTracker,
138        "pickup_sword_test": ZeldaLinksAwakeningOwlTestTracker,
139        "shield_test": ZeldaLinksAwakeningShieldTestTracker,
140        "outside_tarinhouse_test": ZeldaLinksAwakeningOutsideTarinHouseTestTracker,
141        "open_inventory_test": ZeldaLinksAwakeningOpenInventoryTestTracker,
142        "weapon": ZeldaLinksAwakeningWeaponTestTracker,
143        "inventory_weapon_equip": ZeldaLinksAwakeningInventoryWeaponEquipTestTracker,
144        "talk_to_kid_test": ZeldaLinksAwakeningTalkToKidTestTracker,
145        "statue_talk_test": ZeldaLinksAwakeningStatueTalkTestTracker,
146        "read_signboard_test": ZeldaLinksAwakeningReadSignboardTestTracker,
147        "go_inside_shop_test": ZeldaLinksAwakeningGoInsideShopTestTracker,
148        "make_call_test": ZeldaLinksAwakeningMakeCallTestTracker,
149        "enter_dark_forest_test": ZeldaLinksAwakeningEnterDarkForestTestTracker,
150        "inside_tunnel_test": ZeldaLinksAwakeningInsideTunnelTestTracker,
151        "open_chest_test": ZeldaLinksAwakeningOpenChestTestTracker,
152        "chest_opener_test": ZeldaLinksAwakeningChestOpenerTestTracker,
153        "heart_take_tracker": ZeldaLinksAwakeningHeartTakeTestTracker,
154        "shroom_tracker": ZeldaLinksAwakeningShroomTakeTestTracker,
155        "shroom_sword_tracker": ZeldaLinksAwakeningShroomSwordTestTracker,
156        "shroom_shield_tracker": ZeldaLinksAwakeningShroomShieldTestTracker,
157        "sign_checker": ZeldaLinksAwakeningSignCheckerTestTracker,
158        "water_checker": ZeldaLinksAwakeningWaterCheckerTestTracker,
159        "make_call_2_test": ZeldaLinksAwakeningMakeCall2TestTracker,
160        "skeleton_test": ZeldaLinksAwakeningSkeletonTestTracker,
161        "underground_test": ZeldaLinksAwakeningUndergroundTestTracker,
162        "kid_talk_test": ZeldaLinksAwakeningKidTalkTestTracker,
163        "inside_house_test": ZeldaLinksAwakeningInsideHouseTestTracker,
164        "pot_room_test": ZeldaLinksAwakeningPotRoomTestTracker,
165        "pond_tracker": ZeldaLinksAwakeningPondTestTracker,
166        "weird_tunnel_inside_tracker": ZeldaLinksAwakeningWeirdTunnelInsideTestTracker,
167        "witch_talk_tracker": ZeldaLinksAwakeningWitchTalkTestTracker,
168        "signboard_reader_tracker": ZeldaLinksAwakeningSignboardReaderTestTracker,
169        "pineapple_screen_tracker": ZeldaLinksAwakeningPineappleScreenTracker,
170        "call_booth_approach_tracker": ZeldaLinksAwakeningCallBoothApproachTracker,
171        "granny_corner_tracker": ZeldaLinksAwakeningGrannyCornerTracker,
172        "leave_bald_store_carpet_tracker": ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker,
173        "leave_track_tracker": ZeldaLinksAwakeningLeaveTrackTracker,
174        "exit_fat_house_tracker": ZeldaLinksAwakeningExitFatHouseTracker,
175        "booth_house_up_tracker": ZeldaLinksAwakeningBoothHouseUpTracker,
176        "chick_house_block_tracker": ZeldaLinksAwakeningChickHouseBlockTracker,
177        "purplestone_stairs_tracker": ZeldaLinksAwakeningPurplestoneStairsTracker,
178        "heavy_stone_push_tracker": ZeldaLinksAwakeningHeavyStonePushTracker,
179        "boy_dialogue_exit_tracker": ZeldaLinksAwakeningBoyDialogueExitTracker,
180        "dirt_patch_tracker": ZeldaLinksAwakeningDirtPatchTracker,
181        "dirt_patch_two_tracker": ZeldaLinksAwakeningDirtPatchTwoTracker,
182        "stonehouse_right_tree_tracker": ZeldaLinksAwakeningStonehouseRightTreeTracker,
183        "second_boy_dialogue_exit_tracker": ZeldaLinksAwakeningSecondBoyDialogueExitTracker,
184        "railing_jump_tracker": ZeldaLinksAwakeningRailingJumpTracker,
185        "palmt_jump_tracker": ZeldaLinksAwakeningPalmtJumpTracker,
186        "monster_death_tracker": ZeldaLinksAwakeningMonsterDeathTracker,
187        "tileslong_escape_tracker": ZeldaLinksAwakeningTileslongEscapeTracker,
188        "board_sign_approach_tracker": ZeldaLinksAwakeningBoardSignApproachTracker,
189
190        },
191    "legend_of_zelda_the_oracle_of_seasons": {
192        "default": LegendOfZeldaOCRTracker,
193        "other_people_tracker": ZeldaOracleOfSeasonsOtherPeopleTracker,
194        "girl_talk_tracker": ZeldaOracleOfSeasonsGirlTalkTracker,
195        "jumping_tracker": ZeldaOracleOfSeasonsJumpingTracker,
196        "farmer_talk_tracker": ZeldaOracleOfSeasonsFarmerTalkTracker,
197        "library_tracker": ZeldaOracleOfSeasonsLibraryTracker,
198        "parrot_talk_tracker": ZeldaOracleOfSeasonsParrotTalkTracker,
199        "fall_tracker": ZeldaOracleOfSeasonsFallTracker,
200        "stairs_tracker": ZeldaOracleOfSeasonsStairsTracker,
201        "signboard_read_tracker": ZeldaOracleOfSeasonsSignboardReadTracker,
202        "shop_inside_tracker": ZeldaOracleOfSeasonsShopInsideTracker,
203        "shop_person_talk_tracker": ZeldaOracleOfSeasonsShopPersonTalkTracker,
204        "girl_house_tracker": ZeldaOracleOfSeasonsGirlHouseTracker,
205        "pot_interaction_tracker": ZeldaOracleOfSeasonsPotInteractionTracker,
206        "inside_tunnel_tracker": ZeldaOracleOfSeasonsInsideTunnelTracker,
207        "artist_talk_tracker": ZeldaOracleOfSeasonsArtistTalkTracker,
208        "chicken_house_tracker": ZeldaOracleOfSeasonsChickenHouseTracker,
209        "jiggly_path_walk": ZeldaOracleOfSeasonsJigglyPathWalkTracker,
210        "fairy_meet_tracker": ZeldaOracleOfSeasonsFairyMeetTracker,
211        "thing_interaction_tracker": ZeldaOracleOfSeasonsThingInteractionTracker,
212        "inventory_open_tracker": ZeldaOracleOfSeasonsInventoryOpenTracker,
213        "sign_read_tracker": ZeldaOracleOfSeasonsClockTowerSignReadTracker,
214        "near_stairs_tracker": ZeldaOracleOfSeasonsNearStairsTracker,
215        "talk_to_girl_tracker": ZeldaOracleOfSeasonsTalkToGirlTracker,
216        "pier_go_tracker": ZeldaOracleOfSeasonsPierGoTracker,
217        "boardwalk_tracker": ZeldaOracleOfSeasonsBoardwalkTracker,
218        "cat_check_tracker": ZeldaOracleOfSeasonsCatCheckTracker,
219        "cat_talk_tracker": ZeldaOracleOfSeasonsCatTalkTracker,
220        "owner_talk_tracker": ZeldaOracleOfSeasonsOwnerTalkTracker,
221        "bridge_walk_tracker": ZeldaOracleOfSeasonsBridgeWalkTracker,
222        "dog_tracker": ZeldaOracleOfSeasonsDogTracker,
223        "mickey_left_tracker": ZeldaOracleOfSeasonsMickeyLeftTracker,
224        "step_off_grass_block_tracker": ZeldaOracleOfSeasonsStepOffGrassBlockTracker,
225        "shop_sign_path_tracker": ZeldaOracleOfSeasonsShopSignPathTracker,
226        "clocks_up_tracker": ZeldaOracleOfSeasonsClocksUpTracker,
227        "joystick_right_tracker": ZeldaOracleOfSeasonsJoystickRightTracker,
228        "joystick_house_entry_tracker": ZeldaOracleOfSeasonsJoystickHouseEntryTracker,
229        "approach_red_snake_tracker": ZeldaOracleOfSeasonsApproachRedSnakeTracker,
230        "approach_blue_snake_tracker": ZeldaOracleOfSeasonsApproachBlueSnakeTracker,
231        "red_snake_talk_tracker": ZeldaOracleOfSeasonsRedSnakeTalkTracker,
232        "blue_snake_talk_tracker": ZeldaOracleOfSeasonsBlueSnakeTalkTracker,
233        "blue_book_read_tracker": ZeldaOracleOfSeasonsBlueBookReadTracker,
234        "red_book_read_tracker": ZeldaOracleOfSeasonsRedBookReadTracker,
235        "lava_floor_tracker": ZeldaOracleOfSeasonsLavaFloorTracker,
236        "step_off_track_tracker": ZeldaOracleOfSeasonsStepOffTrackTracker,
237        "gloomy_place_left_tracker": ZeldaOracleOfSeasonsGloomyPlaceLeftTracker,
238        "gameover_death_tracker": ZeldaOracleOfSeasonsGameoverDeathTracker,
239        "leave_green_carpet_tracker": ZeldaOracleOfSeasonsLeaveGreenCarpetTracker,
240        "holes_to_trunk_tracker": ZeldaOracleOfSeasonsHolesToTrunkTracker,
241        "trunk_to_holes_tracker": ZeldaOracleOfSeasonsTrunkToHolesTracker,
242        "left_of_trunk_tracker": ZeldaOracleOfSeasonsLeftOfTrunkTracker,
243        },
244
245}
246""" Mapping of game names to their available StateTracker classes with string identifiers. """
247
248
249AVAILABLE_EMULATORS: Dict[str, Dict[str, Type[Emulator]]] = {
250    "legend_of_zelda_links_awakening": {"default": Emulator},
251    "legend_of_zelda_the_oracle_of_seasons": {"default": Emulator},
252}
253""" Mapping of game names to their available Emulator classes with string identifiers. """
GAME_TO_GB_NAME = {'legend_of_zelda_links_awakening': 'LegendOfZeldaLinksAwakening.gbc', 'legend_of_zelda_the_oracle_of_seasons': 'LegendOfZeldaTheOracleOfSeasons.gbc'}

Expected save name for each game. Save the file to /_rom_data/

STRONGEST_PARSERS: Dict[str, Type[gameboy_worlds.emulation.parser.StateParser]] = {'legend_of_zelda_links_awakening': <class 'gameboy_worlds.emulation.legend_of_zelda.parsers.LegendOfZeldaLinksAwakeningParser'>, 'legend_of_zelda_the_oracle_of_seasons': <class 'gameboy_worlds.emulation.legend_of_zelda.parsers.LegendOfZeldaTheOracleOfSeasonsParser'>}

Mapping of game names to their corresponding strongest StateParser classes. Unless you have a very good reason, you should always use the STRONGEST possible parser for a given game. The parser itself does not affect performance, as for it to perform a read / screen comparison operation , it must be called upon by the state tracker. This means there is never a reason to use a weaker parser.

AVAILABLE_STATE_TRACKERS: Dict[str, Dict[str, Type[gameboy_worlds.emulation.tracker.StateTracker]]] = {'legend_of_zelda_links_awakening': {'default': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.LegendOfZeldaOCRTracker'>, 'pickup_sword_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningOwlTestTracker'>, 'shield_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningShieldTestTracker'>, 'outside_tarinhouse_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningOutsideTarinHouseTestTracker'>, 'open_inventory_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningOpenInventoryTestTracker'>, 'weapon': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningWeaponTestTracker'>, 'inventory_weapon_equip': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningInventoryWeaponEquipTestTracker'>, 'talk_to_kid_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningTalkToKidTestTracker'>, 'statue_talk_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningStatueTalkTestTracker'>, 'read_signboard_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningReadSignboardTestTracker'>, 'go_inside_shop_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningGoInsideShopTestTracker'>, 'make_call_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningMakeCallTestTracker'>, 'enter_dark_forest_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningEnterDarkForestTestTracker'>, 'inside_tunnel_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningInsideTunnelTestTracker'>, 'open_chest_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningOpenChestTestTracker'>, 'chest_opener_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningChestOpenerTestTracker'>, 'heart_take_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningHeartTakeTestTracker'>, 'shroom_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningShroomTakeTestTracker'>, 'shroom_sword_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningShroomSwordTestTracker'>, 'shroom_shield_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningShroomShieldTestTracker'>, 'sign_checker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningSignCheckerTestTracker'>, 'water_checker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningWaterCheckerTestTracker'>, 'make_call_2_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningMakeCall2TestTracker'>, 'skeleton_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningSkeletonTestTracker'>, 'underground_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningUndergroundTestTracker'>, 'kid_talk_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningKidTalkTestTracker'>, 'inside_house_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningInsideHouseTestTracker'>, 'pot_room_test': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningPotRoomTestTracker'>, 'pond_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningPondTestTracker'>, 'weird_tunnel_inside_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningWeirdTunnelInsideTestTracker'>, 'witch_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningWitchTalkTestTracker'>, 'signboard_reader_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningSignboardReaderTestTracker'>, 'pineapple_screen_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningPineappleScreenTracker'>, 'call_booth_approach_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningCallBoothApproachTracker'>, 'granny_corner_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningGrannyCornerTracker'>, 'leave_bald_store_carpet_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker'>, 'leave_track_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningLeaveTrackTracker'>, 'exit_fat_house_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningExitFatHouseTracker'>, 'booth_house_up_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningBoothHouseUpTracker'>, 'chick_house_block_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningChickHouseBlockTracker'>, 'purplestone_stairs_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningPurplestoneStairsTracker'>, 'heavy_stone_push_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningHeavyStonePushTracker'>, 'boy_dialogue_exit_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningBoyDialogueExitTracker'>, 'dirt_patch_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningDirtPatchTracker'>, 'dirt_patch_two_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningDirtPatchTwoTracker'>, 'stonehouse_right_tree_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningStonehouseRightTreeTracker'>, 'second_boy_dialogue_exit_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningSecondBoyDialogueExitTracker'>, 'railing_jump_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningRailingJumpTracker'>, 'palmt_jump_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningPalmtJumpTracker'>, 'monster_death_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningMonsterDeathTracker'>, 'tileslong_escape_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningTileslongEscapeTracker'>, 'board_sign_approach_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaLinksAwakeningBoardSignApproachTracker'>}, 'legend_of_zelda_the_oracle_of_seasons': {'default': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.LegendOfZeldaOCRTracker'>, 'other_people_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsOtherPeopleTracker'>, 'girl_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsGirlTalkTracker'>, 'jumping_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsJumpingTracker'>, 'farmer_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsFarmerTalkTracker'>, 'library_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsLibraryTracker'>, 'parrot_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsParrotTalkTracker'>, 'fall_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsFallTracker'>, 'stairs_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsStairsTracker'>, 'signboard_read_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsSignboardReadTracker'>, 'shop_inside_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsShopInsideTracker'>, 'shop_person_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsShopPersonTalkTracker'>, 'girl_house_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsGirlHouseTracker'>, 'pot_interaction_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsPotInteractionTracker'>, 'inside_tunnel_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsInsideTunnelTracker'>, 'artist_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsArtistTalkTracker'>, 'chicken_house_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsChickenHouseTracker'>, 'jiggly_path_walk': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsJigglyPathWalkTracker'>, 'fairy_meet_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsFairyMeetTracker'>, 'thing_interaction_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsThingInteractionTracker'>, 'inventory_open_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsInventoryOpenTracker'>, 'sign_read_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsClockTowerSignReadTracker'>, 'near_stairs_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsNearStairsTracker'>, 'talk_to_girl_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsTalkToGirlTracker'>, 'pier_go_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsPierGoTracker'>, 'boardwalk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsBoardwalkTracker'>, 'cat_check_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsCatCheckTracker'>, 'cat_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsCatTalkTracker'>, 'owner_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsOwnerTalkTracker'>, 'bridge_walk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsBridgeWalkTracker'>, 'dog_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsDogTracker'>, 'mickey_left_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsMickeyLeftTracker'>, 'step_off_grass_block_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsStepOffGrassBlockTracker'>, 'shop_sign_path_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsShopSignPathTracker'>, 'clocks_up_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsClocksUpTracker'>, 'joystick_right_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsJoystickRightTracker'>, 'joystick_house_entry_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsJoystickHouseEntryTracker'>, 'approach_red_snake_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsApproachRedSnakeTracker'>, 'approach_blue_snake_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsApproachBlueSnakeTracker'>, 'red_snake_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsRedSnakeTalkTracker'>, 'blue_snake_talk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsBlueSnakeTalkTracker'>, 'blue_book_read_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsBlueBookReadTracker'>, 'red_book_read_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsRedBookReadTracker'>, 'lava_floor_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsLavaFloorTracker'>, 'step_off_track_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsStepOffTrackTracker'>, 'gloomy_place_left_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsGloomyPlaceLeftTracker'>, 'gameover_death_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsGameoverDeathTracker'>, 'leave_green_carpet_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsLeaveGreenCarpetTracker'>, 'holes_to_trunk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsHolesToTrunkTracker'>, 'trunk_to_holes_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsTrunkToHolesTracker'>, 'left_of_trunk_tracker': <class 'gameboy_worlds.emulation.legend_of_zelda.trackers.ZeldaOracleOfSeasonsLeftOfTrunkTracker'>}}

Mapping of game names to their available StateTracker classes with string identifiers.

AVAILABLE_EMULATORS: Dict[str, Dict[str, Type[gameboy_worlds.emulation.emulator.Emulator]]] = {'legend_of_zelda_links_awakening': {'default': <class 'gameboy_worlds.emulation.emulator.Emulator'>}, 'legend_of_zelda_the_oracle_of_seasons': {'default': <class 'gameboy_worlds.emulation.emulator.Emulator'>}}

Mapping of game names to their available Emulator classes with string identifiers.