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 /_rom_data/

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.