gameboy_worlds.emulation.runes_of_virtue.registry
1from typing import Dict, Type 2 3from gameboy_worlds.emulation.emulator import Emulator 4from gameboy_worlds.emulation.parser import StateParser 5from gameboy_worlds.emulation.runes_of_virtue.parsers import ( 6 RunesOfVirtue1StateParser, 7 RunesOfVirtue2StateParser, 8) 9from gameboy_worlds.emulation.runes_of_virtue.emulators import RunesOfVirtueEmulator 10from gameboy_worlds.emulation.runes_of_virtue.trackers import ( 11 CoreRunesOfVirtueTracker, 12 RunesOfVirtueOCRTracker, 13 RunesOfVirtue1BasementChestOpenedTestTracker, 14 RunesOfVirtue1BasementLadderUnlockedTestTracker, 15 RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker, 16 RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker, 17 RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker, 18 RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker, 19 RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker, 20 RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker, 21 RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker, 22 RunesOfVirtue1CavernOfHatredTestTracker, 23 RunesOfVirtue1CavernOfCowardiceTestTracker, 24 RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker, 25 RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker, 26 RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker, 27 RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker, 28 RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker, 29 RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker, 30 RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker, 31 RunesOfVirtue1CavernOfDeceitTestTracker, 32 RunesOfVirtue1ChucklesDialogTestTracker, 33 RunesOfVirtue1DeathScreenTestTracker, 34 RunesOfVirtue1DrCatDialogTestTracker, 35 RunesOfVirtue1DrCatCatsLairDialogTestTracker, 36 RunesOfVirtue1GnuGnu1DialogTestTracker, 37 RunesOfVirtue1GnuGnu2DialogTestTracker, 38 RunesOfVirtue1KingDialogTestTracker, 39 RunesOfVirtue1OpenMenuTestTracker, 40 RunesOfVirtue1SherryDialogTestTracker, 41 RunesOfVirtue1ShipRiddenTestTracker, 42 RunesOfVirtue1TelescopeViewTestTracker, 43 RunesOfVirtue2BlacksmithFailBuyShieldTestTracker, 44 RunesOfVirtue2BlockedRoomEnteredTestTracker, 45 RunesOfVirtue2BringTholdenBackToKingTestTracker, 46 RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker, 47 RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker, 48 RunesOfVirtue2CaveOfDishonourTestTracker, 49 RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker, 50 RunesOfVirtue2FindLadderBackFromCastleTestTracker, 51 RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker, 52 RunesOfVirtue2AttendCastleCeremonyTestTracker, 53 RunesOfVirtue2GiveCheeseToSherryTestTracker, 54 RunesOfVirtue2GrabCheeseFromKitchenTestTracker, 55 RunesOfVirtue2InteractWithMapOnTableTestTracker, 56 RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker, 57 RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker, 58 RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker, 59 RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker, 60 RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker, 61 RunesOfVirtue2CavernOfHatredGrabKeyTestTracker, 62 RunesOfVirtue2CavernOfHatredLadder2TestTracker, 63 RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker, 64 RunesOfVirtue2CavernOfHatredTestTracker, 65 RunesOfVirtue2DeathScreenTestTracker, 66 RunesOfVirtue2LordWhitsaberDialogTestTracker, 67 RunesOfVirtue2NystulDialogTestTracker, 68 RunesOfVirtue2OpenMenuTestTracker, 69 RunesOfVirtue2ReadBookTestTracker, 70 RunesOfVirtue2SandyCookDialogTestTracker, 71 RunesOfVirtue2SherryMouseDialogTestTracker, 72 RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker, 73) 74from gameboy_worlds.emulation.tracker import StateTracker 75 76 77GAME_TO_GB_NAME = { 78 "runes_of_virtue_1": "RunesOfVirtue1.gb", 79 "runes_of_virtue_2": "RunesOfVirtue2.gb", 80} 81""" Expected save name for each game. Save the file to <storage_dir_from_config_file>/<game_name>_rom_data/<gb_name>""" 82 83 84STRONGEST_PARSERS: Dict[str, Type[StateParser]] = { 85 "runes_of_virtue_1": RunesOfVirtue1StateParser, 86 "runes_of_virtue_2": RunesOfVirtue2StateParser, 87} 88""" Mapping of game names to their corresponding strongest StateParser classes. """ 89 90 91AVAILABLE_STATE_TRACKERS: Dict[str, Dict[str, Type[StateTracker]]] = { 92 "runes_of_virtue_1": { 93 "default": RunesOfVirtueOCRTracker, 94 "basic": CoreRunesOfVirtueTracker, 95 "open_menu_test": RunesOfVirtue1OpenMenuTestTracker, 96 "king_dialog_test": RunesOfVirtue1KingDialogTestTracker, 97 "chuckles_dialog_test": RunesOfVirtue1ChucklesDialogTestTracker, 98 "gnu_gnu_1_dialog_test": RunesOfVirtue1GnuGnu1DialogTestTracker, 99 "gnu_gnu_2_dialog_test": RunesOfVirtue1GnuGnu2DialogTestTracker, 100 "sherry_dialog_test": RunesOfVirtue1SherryDialogTestTracker, 101 "cavern_of_hatred_test": RunesOfVirtue1CavernOfHatredTestTracker, 102 "cavern_of_cowardice_test": RunesOfVirtue1CavernOfCowardiceTestTracker, 103 "cavern_of_cowardice_enter_floor_2_test": ( 104 RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker 105 ), 106 "cavern_of_cowardice_enter_floor_3_test": ( 107 RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker 108 ), 109 "cavern_of_cowardice_floor_3_chest_opened_test": ( 110 RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker 111 ), 112 "cavern_of_cowardice_enter_floor_4_test": ( 113 RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker 114 ), 115 "cavern_of_cowardice_sherry_floor_4_dialog_test": ( 116 RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker 117 ), 118 "cavern_of_cowardice_take_stew_floor_4_test": ( 119 RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker 120 ), 121 "cavern_of_cowardice_obtain_coin_floor_4_test": ( 122 RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker 123 ), 124 "cavern_of_deceit_test": RunesOfVirtue1CavernOfDeceitTestTracker, 125 "dr_cat_dialog_test": RunesOfVirtue1DrCatDialogTestTracker, 126 "dr_cat_cats_lair_dialog_test": ( 127 RunesOfVirtue1DrCatCatsLairDialogTestTracker 128 ), 129 "ship_ridden_test": RunesOfVirtue1ShipRiddenTestTracker, 130 "basement_ladder_unlocked_test": ( 131 RunesOfVirtue1BasementLadderUnlockedTestTracker 132 ), 133 "basement_chest_opened_test": RunesOfVirtue1BasementChestOpenedTestTracker, 134 "cavern_of_hatred_enter_floor_2_test": ( 135 RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker 136 ), 137 "cavern_of_hatred_sherry_floor_2_dialog_test": ( 138 RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker 139 ), 140 "cavern_of_hatred_choose_door_with_sherry_test": ( 141 RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker 142 ), 143 "cavern_of_hatred_choose_right_door_melissa_dialog_test": ( 144 RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker 145 ), 146 "cavern_of_hatred_enter_floor_3_test": ( 147 RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker 148 ), 149 "cavern_of_hatred_enter_floor_4_test": ( 150 RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker 151 ), 152 "cavern_of_hatred_chest_floor_1_opened_test": ( 153 RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker 154 ), 155 "telescope_view_test": RunesOfVirtue1TelescopeViewTestTracker, 156 "death_screen_test": RunesOfVirtue1DeathScreenTestTracker, 157 }, 158 "runes_of_virtue_2": { 159 "default": RunesOfVirtueOCRTracker, 160 "basic": CoreRunesOfVirtueTracker, 161 "open_menu_test": RunesOfVirtue2OpenMenuTestTracker, 162 "read_book_test": RunesOfVirtue2ReadBookTestTracker, 163 "blocked_room_entered_test": RunesOfVirtue2BlockedRoomEnteredTestTracker, 164 "nystul_dialog_test": RunesOfVirtue2NystulDialogTestTracker, 165 "blacksmith_fail_buy_shield_test": ( 166 RunesOfVirtue2BlacksmithFailBuyShieldTestTracker 167 ), 168 "sherry_mouse_dialog_test": RunesOfVirtue2SherryMouseDialogTestTracker, 169 "sandy_cook_dialog_test": RunesOfVirtue2SandyCookDialogTestTracker, 170 "lord_whitsaber_dialog_test": RunesOfVirtue2LordWhitsaberDialogTestTracker, 171 "cave_of_dishonour_test": RunesOfVirtue2CaveOfDishonourTestTracker, 172 "cavern_of_hatred_test": RunesOfVirtue2CavernOfHatredTestTracker, 173 "cave_of_dishonour_enter_floor_2_test": ( 174 RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker 175 ), 176 "cave_of_dishonour_enter_floor_3_test": ( 177 RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker 178 ), 179 "grab_cheese_from_kitchen_test": ( 180 RunesOfVirtue2GrabCheeseFromKitchenTestTracker 181 ), 182 "give_cheese_to_sherry_test": RunesOfVirtue2GiveCheeseToSherryTestTracker, 183 "climb_ladder_behind_locked_door_test": ( 184 RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker 185 ), 186 "interact_with_map_on_table_test": ( 187 RunesOfVirtue2InteractWithMapOnTableTestTracker 188 ), 189 "find_ladder_back_from_castle_test": ( 190 RunesOfVirtue2FindLadderBackFromCastleTestTracker 191 ), 192 "unlock_door_and_save_tholden_test": ( 193 RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker 194 ), 195 "find_ladder_out_of_cavern_of_hatred_test": ( 196 RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker 197 ), 198 "bring_tholden_back_to_king_test": ( 199 RunesOfVirtue2BringTholdenBackToKingTestTracker 200 ), 201 "attend_castle_ceremony_test": ( 202 RunesOfVirtue2AttendCastleCeremonyTestTracker 203 ), 204 "cavern_of_hatred_gate_1_unlocked_test": ( 205 RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker 206 ), 207 "cavern_of_hatred_ladder_room_2_test": ( 208 RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker 209 ), 210 "cavern_of_hatred_ladder_2_test": ( 211 RunesOfVirtue2CavernOfHatredLadder2TestTracker 212 ), 213 "cavern_of_hatred_grab_key_test": ( 214 RunesOfVirtue2CavernOfHatredGrabKeyTestTracker 215 ), 216 "cavern_of_hatred_enter_floor_4_test": ( 217 RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker 218 ), 219 "cavern_of_hatred_enter_floor_5_test": ( 220 RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker 221 ), 222 "cavern_of_hatred_enter_floor_6_test": ( 223 RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker 224 ), 225 "cavern_of_hatred_enter_floor_7_test": ( 226 RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker 227 ), 228 "death_screen_test": RunesOfVirtue2DeathScreenTestTracker, 229 }, 230} 231""" Mapping of game names to their available StateTracker classes with string identifiers. """ 232 233 234AVAILABLE_EMULATORS: Dict[str, Dict[str, Type[Emulator]]] = { 235 "runes_of_virtue_1": {"default": RunesOfVirtueEmulator}, 236 "runes_of_virtue_2": {"default": RunesOfVirtueEmulator}, 237} 238""" Mapping of game names to their available Emulator classes with string identifiers. """
GAME_TO_GB_NAME =
{'runes_of_virtue_1': 'RunesOfVirtue1.gb', 'runes_of_virtue_2': 'RunesOfVirtue2.gb'}
Expected save name for each game. Save the file to
STRONGEST_PARSERS: Dict[str, Type[gameboy_worlds.emulation.parser.StateParser]] =
{'runes_of_virtue_1': <class 'gameboy_worlds.emulation.runes_of_virtue.parsers.RunesOfVirtue1StateParser'>, 'runes_of_virtue_2': <class 'gameboy_worlds.emulation.runes_of_virtue.parsers.RunesOfVirtue2StateParser'>}
Mapping of game names to their corresponding strongest StateParser classes.
AVAILABLE_STATE_TRACKERS: Dict[str, Dict[str, Type[gameboy_worlds.emulation.tracker.StateTracker]]] =
{'runes_of_virtue_1': {'default': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtueOCRTracker'>, 'basic': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.CoreRunesOfVirtueTracker'>, 'open_menu_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1OpenMenuTestTracker'>, 'king_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1KingDialogTestTracker'>, 'chuckles_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1ChucklesDialogTestTracker'>, 'gnu_gnu_1_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1GnuGnu1DialogTestTracker'>, 'gnu_gnu_2_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1GnuGnu2DialogTestTracker'>, 'sherry_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1SherryDialogTestTracker'>, 'cavern_of_hatred_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredTestTracker'>, 'cavern_of_cowardice_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceTestTracker'>, 'cavern_of_cowardice_enter_floor_2_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker'>, 'cavern_of_cowardice_enter_floor_3_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker'>, 'cavern_of_cowardice_floor_3_chest_opened_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker'>, 'cavern_of_cowardice_enter_floor_4_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker'>, 'cavern_of_cowardice_sherry_floor_4_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker'>, 'cavern_of_cowardice_take_stew_floor_4_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker'>, 'cavern_of_cowardice_obtain_coin_floor_4_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker'>, 'cavern_of_deceit_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfDeceitTestTracker'>, 'dr_cat_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1DrCatDialogTestTracker'>, 'dr_cat_cats_lair_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1DrCatCatsLairDialogTestTracker'>, 'ship_ridden_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1ShipRiddenTestTracker'>, 'basement_ladder_unlocked_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1BasementLadderUnlockedTestTracker'>, 'basement_chest_opened_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1BasementChestOpenedTestTracker'>, 'cavern_of_hatred_enter_floor_2_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker'>, 'cavern_of_hatred_sherry_floor_2_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker'>, 'cavern_of_hatred_choose_door_with_sherry_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker'>, 'cavern_of_hatred_choose_right_door_melissa_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker'>, 'cavern_of_hatred_enter_floor_3_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker'>, 'cavern_of_hatred_enter_floor_4_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker'>, 'cavern_of_hatred_chest_floor_1_opened_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker'>, 'telescope_view_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1TelescopeViewTestTracker'>, 'death_screen_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue1DeathScreenTestTracker'>}, 'runes_of_virtue_2': {'default': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtueOCRTracker'>, 'basic': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.CoreRunesOfVirtueTracker'>, 'open_menu_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2OpenMenuTestTracker'>, 'read_book_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2ReadBookTestTracker'>, 'blocked_room_entered_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2BlockedRoomEnteredTestTracker'>, 'nystul_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2NystulDialogTestTracker'>, 'blacksmith_fail_buy_shield_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2BlacksmithFailBuyShieldTestTracker'>, 'sherry_mouse_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2SherryMouseDialogTestTracker'>, 'sandy_cook_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2SandyCookDialogTestTracker'>, 'lord_whitsaber_dialog_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2LordWhitsaberDialogTestTracker'>, 'cave_of_dishonour_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CaveOfDishonourTestTracker'>, 'cavern_of_hatred_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredTestTracker'>, 'cave_of_dishonour_enter_floor_2_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker'>, 'cave_of_dishonour_enter_floor_3_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker'>, 'grab_cheese_from_kitchen_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2GrabCheeseFromKitchenTestTracker'>, 'give_cheese_to_sherry_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2GiveCheeseToSherryTestTracker'>, 'climb_ladder_behind_locked_door_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker'>, 'interact_with_map_on_table_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2InteractWithMapOnTableTestTracker'>, 'find_ladder_back_from_castle_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2FindLadderBackFromCastleTestTracker'>, 'unlock_door_and_save_tholden_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker'>, 'find_ladder_out_of_cavern_of_hatred_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker'>, 'bring_tholden_back_to_king_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2BringTholdenBackToKingTestTracker'>, 'attend_castle_ceremony_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2AttendCastleCeremonyTestTracker'>, 'cavern_of_hatred_gate_1_unlocked_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker'>, 'cavern_of_hatred_ladder_room_2_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker'>, 'cavern_of_hatred_ladder_2_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredLadder2TestTracker'>, 'cavern_of_hatred_grab_key_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredGrabKeyTestTracker'>, 'cavern_of_hatred_enter_floor_4_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker'>, 'cavern_of_hatred_enter_floor_5_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker'>, 'cavern_of_hatred_enter_floor_6_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker'>, 'cavern_of_hatred_enter_floor_7_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker'>, 'death_screen_test': <class 'gameboy_worlds.emulation.runes_of_virtue.trackers.RunesOfVirtue2DeathScreenTestTracker'>}}
Mapping of game names to their available StateTracker classes with string identifiers.
AVAILABLE_EMULATORS: Dict[str, Dict[str, Type[gameboy_worlds.emulation.emulator.Emulator]]] =
{'runes_of_virtue_1': {'default': <class 'gameboy_worlds.emulation.runes_of_virtue.emulators.RunesOfVirtueEmulator'>}, 'runes_of_virtue_2': {'default': <class 'gameboy_worlds.emulation.runes_of_virtue.emulators.RunesOfVirtueEmulator'>}}
Mapping of game names to their available Emulator classes with string identifiers.