gameboy_worlds.emulation.harvest_moon.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
  5from gameboy_worlds.emulation.harvest_moon.parsers import (
  6    HarvestMoon1Parser,
  7    HarvestMoon2Parser,
  8    HarvestMoon3Parser,
  9)
 10from gameboy_worlds.emulation.harvest_moon.trackers import (
 11    HarvestMoonOCRTracker,
 12    HarvestMoonCowBarnTracker,   
 13    HarvestMoonChickenCoopTracker,
 14    HarvestMoonStorageTracker,
 15    HarvestMoonPickupWaterCanTracker,
 16    HarvestMoonPickupCowBellTracker,
 17    HarvestMoonGoToSleepTracker,
 18    HarvestMoonFeedSpiritTracker,
 19    HarvestMoonHelpSpiritEarthquakeTracker,
 20    HarvestMoonWaterTurnipTracker,
 21    HarvestMoonBuyMaterialTracker,
 22    HarvestMoonBuyChickenTracker,
 23    HarvestMoonBuyCowTracker,
 24    HarvestMoonSellChickenTracker,
 25    HarvestMoonBuyCowBrushTracker,
 26    HarvestMoonBuySaddlebagTracker,
 27    HarvestMoonBuyMilkerTracker,
 28    HarvestMoonBuyRiceBallTracker,
 29    HarvestMoonOpenMenuTracker,
 30    HarvestMoonOpenStorageListTracker,
 31    HarvestMoonFindRainyMoneyTracker,
 32    HarvestMoonFindLostBirdTracker,
 33    HarvestMoonSpeakToBlueHairGirlTracker,
 34    HarvestMoonFillChickenFodderTracker,
 35    HarvestMoonPickupSickleTracker,
 36    HarvestMoonPickupHoeTracker,
 37    HarvestMoonPickupHammerTracker,
 38    HarvestMoonPickupGrassSeedTracker,
 39    HarvestMoonBuyCroissantTracker,
 40    HarvestMoonBuyCakeTracker,
 41    HarvestMoonBuyGrapeJuiceTracker,
 42    HarvestMoonGoToChurchPrayTracker,
 43    HarvestMoonSpeakToGoldenHairGirlTracker,
 44    HarvestMoonSpeakToPinkHairGirlTracker,
 45    HarvestMoon1SpeakToBlueHairGirlWGTracker,
 46    HarvestMoon1SpeakToPinkHairGirlWGTracker,
 47    HarvestMoon1SpeakToRedHairGirlWGTracker,
 48    HarvestMoon1RestoreFenceTracker,
 49
 50    # HM2
 51    HarvestMoon2CowBarnTracker,
 52    HarvestMoon2ChickenCoopTracker,
 53    HarvestMoon2FindLuckyMoneyTracker,
 54    HarvestMoon2HospitalEntranceTracker,
 55    HarvestMoon2ToolShopEntranceTracker,
 56    HarvestMoon2CarpenterEntranceTracker,
 57    HarvestMoon2AnimalShopEntranceTracker,
 58    HarvestMoon2LibraryEntranceTracker,
 59    HarvestMoon2FlowerShopEntranceTracker,
 60    HarvestMoon2GetBridgeEstimateTracker,
 61    HarvestMoon2BuyMilkerTracker,
 62    
 63    HarvestMoonReadVillageSignTracker,
 64    HarvestMoonReadFarmSignTracker,
 65    HarvestMoon2ReadSecretGardenSignTracker,
 66    
 67    # HM3
 68    HarvestMoon3RemoveWeedTracker,
 69    HarvestMoon3PickUpCherryTracker,
 70    HarvestMoon3WaterCenterWatermelonTracker,
 71    HarvestMoon3HatchEggTracker,
 72    HarvestMoon3FillChickenFodderTracker,
 73    HarvestMoon3BuyFodderSetTracker,
 74    HarvestMoon3BuyHorseMedicineTracker,
 75    HarvestMoon3SpeakToKateTracker,
 76    HarvestMoon3BreakRockTracker,
 77    HarvestMoon3WaterCenterSPotatoTracker,
 78    HarvestMoon3HarvestTargetPotatoTracker,
 79    HarvestMoon3ReadAnimalCh2Tracker,
 80    HarvestMoon3HarvestCenterTurnipTracker,
 81    HarvestMoon3SellChickenTracker,
 82    HarvestMoon3PickBerryTracker,
 83    HarvestMoon3CheckPlayerMoneyTracker,
 84    HarvestMoon3HarvestCenterEggplantTopTracker,
 85    HarvestMoon3ChickenCoopTracker,
 86    HarvestMoon3ReadSecretGardenSignTracker,
 87    HarvestMoon3ReadFerrySignTracker,
 88    HarvestMoon3FindSecretSavingsTracker,
 89    HarvestMoon3ChooseTeaTracker,
 90    HarvestMoon3ChooseAsparagusSeedsTracker,
 91    HarvestMoon3BuyPotatoSeedsTracker,
 92    HarvestMoon3BuyTurnipSeedsTracker,
 93    HarvestMoon3ReadMorningMarketSignTracker,
 94    HarvestMoon3ReadStorageSignTracker,
 95    HarvestMoon3SpeakToKirkVillageTracker,
 96    HarvestMoon3TakeFerryTracker,
 97    HarvestMoon3SpeakToJoeTracker,
 98    HarvestMoon3SpeakToLukiaTracker,
 99    HarvestMoon3SpeakToLucusTracker,
100    HarvestMoon3SpeakToLylaTracker,
101    HarvestMoon3BuyHorseSaddleTracker,
102    HarvestMoon3BuyFlowerVaseTracker,
103    HarvestMoon3BuyMealSetTracker,
104    HarvestMoon3BuyCoffeeTracker,
105    HarvestMoon3FeedCowFodderTracker,
106    HarvestMoon3FarmEntranceTracker,
107    HarvestMoon3VillageEntranceTracker,
108    HarvestMoon3GrasslandEntranceTracker,
109    HarvestMoon3ForestEntranceTracker,
110    HarvestMoon3CliffEntranceTracker,
111    HarvestMoon3MountainEntranceTracker,
112    HarvestMoon3ShoppingMallEntranceTracker,
113    HarvestMoon3ShoppingMallSecondFloorTracker,
114    HarvestMoon3FarmersUnionEntranceTracker,
115    HarvestMoon3AquariumEntranceTracker,
116    HarvestMoon3TheatreEntranceTracker,
117    HarvestMoon3HotSpringEntranceTracker,
118    HarvestMoon2ReadCropFieldSignTracker,
119    HarvestMoonReadNoticeBoardTracker,
120    HarvestMoon2RestaurantEntranceTracker,
121    HarvestMoon2BuyLunchSetTracker,
122    HarvestMoon2BuyBeverageSetTracker,
123    HarvestMoon2BuyTodaysSpecialTracker,
124    HarvestMoon2GoToBedTracker,
125    HarvestMoon2EquipSickleTracker,
126    HarvestMoon2EquipHammerTracker,
127    HarvestMoon2EquipFishingRodTracker,
128    HarvestMoon2EquipNetReplacingAxTracker,
129    HarvestMoon2EquipRosemarySeedsReplacingAxTracker,
130    HarvestMoon2EquipSickleReplacingSprinklerTracker,
131    HarvestMoon2EquipNetReplacingHoeTracker,
132    HarvestMoon1HatchEggTracker,
133    HarvestMoon1BreakRockTracker,
134    HarvestMoon1BreakRightmostRockTracker,
135    HarvestMoon1RemoveLowestWeedTracker,
136    HarvestMoon1CutLowestWeedTracker,
137    HarvestMoon1RemoveTopLeftWeedTracker,
138    HarvestMoon1CutTopLeftWeedTracker,
139    HarvestMoon1HarvestCenterGrasslineTracker,
140    # HarvestMoon1RestoreFenceTracker,
141    HarvestMoon1HarvestCenterTurnipTracker,
142    HarvestMoon1WaterCenterTurnipTracker,
143    HarvestMoon1WaterCenterPotatoTracker,
144    HarvestMoon1HarvestCenterPotatoTracker,
145    HarvestMoon1GetHomeExpansionEstimateTracker,
146    HarvestMoon1FillCowFodderTracker,
147    # HarvestMoon2ShipEggplantTracker,
148    HarvestMoon2Cross500mLineTracker,
149    HarvestMoon2Cross1000mLineTracker,
150    HarvestMoon2HarvestCenterEggplantTracker,
151    HarvestMoon2HarvestCenterCarrotTracker,
152    HarvestMoon2WaterCenterPotatoTracker,
153    HarvestMoon2WaterCenterAsparagusTracker,
154    HarvestMoon2ReadComputersArticleTracker,
155    HarvestMoon2ReadBouldersArticleTracker,
156    HarvestMoon2ReadCropsArticleTracker,
157    HarvestMoon2RemoveLeftmostWeedTracker,
158    HarvestMoon2PickBerryTracker,
159    HarvestMoon2PickBerryAboveTracker,
160    HarvestMoon2SpeakToBlueHairGirlTracker,
161    HarvestMoon2SpeakToPurpleHairGirlTracker,
162    HarvestMoon2SpeakToBlondeGirlTracker,
163    HarvestMoon2HatchEggTracker,
164    HarvestMoon2BuyCowTracker,
165    HarvestMoon2SellCowTracker,
166    HarvestMoon2SellChickenTracker,
167    HarvestMoon2GetHothouseEstimateTracker,
168    HarvestMoon2BuyChickenTracker,
169    HarvestMoon2FillChickenFodderTracker,
170    HarvestMoon2WaterCornFieldTracker,
171    HarvestMoon2CutCenterCornTracker,
172    HarvestMoon2WaterCabbageFieldTracker,
173)
174
175GAME_TO_GB_NAME = {
176    "harvest_moon_1": "HarvestMoon1.gbc",
177    "harvest_moon_2": "HarvestMoon2.gbc",
178    "harvest_moon_3": "HarvestMoon3.gbc",
179}
180""" Expected save name for each game. Save the file to <storage_dir_from_config_file>/<game_name>_rom_data/<gb_name>"""
181
182STRONGEST_PARSERS: Dict[str, Type[StateParser]] = {
183    "harvest_moon_1": HarvestMoon1Parser,
184    "harvest_moon_2": HarvestMoon2Parser,
185    "harvest_moon_3": HarvestMoon3Parser,
186}
187""" Mapping of game names to their corresponding strongest StateParser classes. 
188Unless you have a very good reason, you should always use the STRONGEST possible parser for a given game. 
189The 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.
190This means there is never a reason to use a weaker parser. 
191"""
192
193
194AVAILABLE_STATE_TRACKERS: Dict[str, Dict[str, Type[StateTracker]]] = {
195    "harvest_moon_1": {
196        "default": HarvestMoonOCRTracker,
197        "cow_barn_test": HarvestMoonCowBarnTracker,
198        "chicken_coop_test": HarvestMoonChickenCoopTracker,
199        "storage_shed_test": HarvestMoonStorageTracker,
200        "pickup_watercan_test": HarvestMoonPickupWaterCanTracker,
201        "pickup_cowbell_test": HarvestMoonPickupCowBellTracker,
202        "go_to_sleep_test": HarvestMoonGoToSleepTracker,
203        "feed_spirit_test": HarvestMoonFeedSpiritTracker,
204        "help_spirit_earthquake_test": HarvestMoonHelpSpiritEarthquakeTracker,
205        "water_turnip_test": HarvestMoonWaterTurnipTracker,
206        "buy_material_test": HarvestMoonBuyMaterialTracker,
207        "buy_chicken_test": HarvestMoonBuyChickenTracker,
208        "buy_cow_test": HarvestMoonBuyCowTracker,
209        "sell_chicken_test": HarvestMoonSellChickenTracker,
210        "buy_cow_brush_test": HarvestMoonBuyCowBrushTracker,
211        "buy_saddlebag_test": HarvestMoonBuySaddlebagTracker,
212        "buy_milker_test": HarvestMoonBuyMilkerTracker,
213        "buy_rice_ball_test": HarvestMoonBuyRiceBallTracker,
214        "open_storage_list_test": HarvestMoonOpenStorageListTracker,
215        "find_rainy_money_test": HarvestMoonFindRainyMoneyTracker,
216        "find_lost_bird_test": HarvestMoonFindLostBirdTracker,
217        "speak_to_blue_hair_girl_test": HarvestMoonSpeakToBlueHairGirlTracker,
218        "fill_chicken_fodder_test": HarvestMoonFillChickenFodderTracker,
219        "pickup_sickle_test": HarvestMoonPickupSickleTracker,
220        "pickup_hoe_test": HarvestMoonPickupHoeTracker,
221        "pickup_hammer_test": HarvestMoonPickupHammerTracker,
222        "pickup_grass_seed_test": HarvestMoonPickupGrassSeedTracker,
223        "buy_croissant_test": HarvestMoonBuyCroissantTracker,
224        "buy_cake_test": HarvestMoonBuyCakeTracker,
225        "buy_grape_juice_test": HarvestMoonBuyGrapeJuiceTracker,
226        "go_to_church_pray_test": HarvestMoonGoToChurchPrayTracker,
227        "speak_to_golden_hair_girl_test": HarvestMoonSpeakToGoldenHairGirlTracker,
228        "speak_to_pink_hair_girl_test": HarvestMoonSpeakToPinkHairGirlTracker,
229        "speak_to_blue_hair_girl_wg_test": HarvestMoon1SpeakToBlueHairGirlWGTracker,
230        "speak_to_pink_hair_girl_wg_test": HarvestMoon1SpeakToPinkHairGirlWGTracker,
231        "speak_to_red_hair_girl_wg_test": HarvestMoon1SpeakToRedHairGirlWGTracker,
232        "open_menu_test": HarvestMoonOpenMenuTracker,
233        "hatch_egg_test": HarvestMoon1HatchEggTracker,
234        "break_rock_test": HarvestMoon1BreakRockTracker,
235        "break_rightmost_rock_test": HarvestMoon1BreakRightmostRockTracker,
236        "remove_lowest_weed_test": HarvestMoon1RemoveLowestWeedTracker,
237        "cut_lowest_weed_test": HarvestMoon1CutLowestWeedTracker,
238        "remove_top_left_weed_test": HarvestMoon1RemoveTopLeftWeedTracker,
239        "cut_top_left_weed_test": HarvestMoon1CutTopLeftWeedTracker,
240        "harvest_center_grassline_test": HarvestMoon1HarvestCenterGrasslineTracker,
241        "restore_fence_test": HarvestMoon1RestoreFenceTracker,
242        "harvest_center_turnip_test": HarvestMoon1HarvestCenterTurnipTracker,
243        "water_center_turnip_test": HarvestMoon1WaterCenterTurnipTracker,
244        "water_center_potato_test": HarvestMoon1WaterCenterPotatoTracker,
245        "harvest_center_potato_test": HarvestMoon1HarvestCenterPotatoTracker,
246        "get_home_expansion_estimate_test": HarvestMoon1GetHomeExpansionEstimateTracker,
247        "fill_cow_fodder_test": HarvestMoon1FillCowFodderTracker,
248    },
249    "harvest_moon_2": {
250        "default": HarvestMoonOCRTracker,
251        "cow_barn_test": HarvestMoon2CowBarnTracker,
252        "chicken_coop_test": HarvestMoon2ChickenCoopTracker,
253        "hospital_entrance_test": HarvestMoon2HospitalEntranceTracker,
254        "animal_shop_entrance_test": HarvestMoon2AnimalShopEntranceTracker,
255        "library_entrance_test": HarvestMoon2LibraryEntranceTracker,
256        "tool_shop_entrance_test": HarvestMoon2ToolShopEntranceTracker,
257        "carpenter_entrance_test": HarvestMoon2CarpenterEntranceTracker,
258        "find_lucky_money_test": HarvestMoon2FindLuckyMoneyTracker,        
259        "flower_shop_entrance_test": HarvestMoon2FlowerShopEntranceTracker,
260        "get_bridge_estimate_test": HarvestMoon2GetBridgeEstimateTracker,
261        "buy_milker_test": HarvestMoon2BuyMilkerTracker,
262        "restaurant_entrance_test": HarvestMoon2RestaurantEntranceTracker,
263        "buy_lunch_set_test": HarvestMoon2BuyLunchSetTracker,
264        "buy_beverage_set_test": HarvestMoon2BuyBeverageSetTracker,
265        "buy_todays_special_test": HarvestMoon2BuyTodaysSpecialTracker,
266        "go_to_bed_test": HarvestMoon2GoToBedTracker,
267        "read_secret_garden_sign_test": HarvestMoon2ReadSecretGardenSignTracker,
268        "read_crop_field_sign_test": HarvestMoon2ReadCropFieldSignTracker,
269        "equip_sickle_test": HarvestMoon2EquipSickleTracker,
270        "equip_hammer_test": HarvestMoon2EquipHammerTracker,
271        "equip_fishing_rod_test": HarvestMoon2EquipFishingRodTracker,
272        "equip_net_replacing_ax_test": HarvestMoon2EquipNetReplacingAxTracker,
273        "equip_rosemary_seeds_replacing_ax_test": HarvestMoon2EquipRosemarySeedsReplacingAxTracker,
274        "equip_sickle_replacing_sprinkler_test": HarvestMoon2EquipSickleReplacingSprinklerTracker,
275        "equip_net_replacing_hoe_test": HarvestMoon2EquipNetReplacingHoeTracker,
276        "cross_500m_line_test": HarvestMoon2Cross500mLineTracker,
277        "cross_1000m_line_test": HarvestMoon2Cross1000mLineTracker,
278        "harvest_center_eggplant_test": HarvestMoon2HarvestCenterEggplantTracker,
279        "harvest_center_carrot_test": HarvestMoon2HarvestCenterCarrotTracker,
280        "water_center_potato_test": HarvestMoon2WaterCenterPotatoTracker,
281        "water_center_asparagus_test": HarvestMoon2WaterCenterAsparagusTracker,
282        "read_computers_article_test": HarvestMoon2ReadComputersArticleTracker,
283        "read_boulders_article_test": HarvestMoon2ReadBouldersArticleTracker,
284        "read_selling_crops_article_test": HarvestMoon2ReadCropsArticleTracker,
285        "remove_leftmost_weed_test": HarvestMoon2RemoveLeftmostWeedTracker,
286        "pick_berry_test": HarvestMoon2PickBerryTracker,
287        "pick_berry_above_test": HarvestMoon2PickBerryAboveTracker,
288        "speak_to_blue_hair_girl_test": HarvestMoon2SpeakToBlueHairGirlTracker,
289        "speak_to_purple_hair_girl_test": HarvestMoon2SpeakToPurpleHairGirlTracker,
290        "speak_to_blonde_girl_test": HarvestMoon2SpeakToBlondeGirlTracker,
291        "hatch_egg_test": HarvestMoon2HatchEggTracker,
292        "buy_cow_test": HarvestMoon2BuyCowTracker,
293        "sell_cow_test": HarvestMoon2SellCowTracker,
294        "sell_chicken_test": HarvestMoon2SellChickenTracker,
295        "get_hothouse_estimate_test": HarvestMoon2GetHothouseEstimateTracker,
296        "buy_chicken_test": HarvestMoon2BuyChickenTracker,
297        "fill_chicken_fodder_test": HarvestMoon2FillChickenFodderTracker,
298        "water_corn_field_test": HarvestMoon2WaterCornFieldTracker,
299        "cut_center_corn_test": HarvestMoon2CutCenterCornTracker,
300        "water_cabbage_field_test": HarvestMoon2WaterCabbageFieldTracker,
301        
302        "storage_shed_test": HarvestMoonStorageTracker,
303        "water_turnip_test": HarvestMoonWaterTurnipTracker,
304        "open_storage_list_test": HarvestMoonOpenStorageListTracker,
305        "read_village_sign_test": HarvestMoonReadVillageSignTracker,
306        "read_farm_sign_test": HarvestMoonReadFarmSignTracker,
307        "read_notice_board_test": HarvestMoonReadNoticeBoardTracker,
308        "open_menu_test": HarvestMoonOpenMenuTracker,
309    },
310    "harvest_moon_3": {
311        "default": HarvestMoonOCRTracker,
312        "chicken_coop_test": HarvestMoon3ChickenCoopTracker,
313        "read_secret_garden_sign_test": HarvestMoon3ReadSecretGardenSignTracker,
314        "read_morning_market_sign_test": HarvestMoon3ReadMorningMarketSignTracker,
315        "read_storage_sign_test": HarvestMoon3ReadStorageSignTracker,
316        "speak_to_Kirk_village_test": HarvestMoon3SpeakToKirkVillageTracker,
317        "take_ferry_back_test": HarvestMoon3TakeFerryTracker,
318        "speak_to_Joe_test": HarvestMoon3SpeakToJoeTracker,
319        "speak_to_Lukia_test": HarvestMoon3SpeakToLukiaTracker,
320        "speak_to_Lucus_test": HarvestMoon3SpeakToLucusTracker,
321        "speak_to_Lyla_test": HarvestMoon3SpeakToLylaTracker,
322        "buy_horse_saddle_test": HarvestMoon3BuyHorseSaddleTracker,
323        "buy_flower_vase_test": HarvestMoon3BuyFlowerVaseTracker,
324        "buy_meal_set_test": HarvestMoon3BuyMealSetTracker,
325        "choose_coffee_to_buy_test": HarvestMoon3BuyCoffeeTracker,
326        "shopping_mall_entrance_test": HarvestMoon3ShoppingMallEntranceTracker,
327        "shopping_mall_second_floor_test": HarvestMoon3ShoppingMallSecondFloorTracker,
328        "farmers_union_entrance_test": HarvestMoon3FarmersUnionEntranceTracker,
329        "aquarium_entrance_test": HarvestMoon3AquariumEntranceTracker,
330        "theatre_entrance_test": HarvestMoon3TheatreEntranceTracker,
331        "hot_spring_entrance_test": HarvestMoon3HotSpringEntranceTracker,
332        "open_menu_test": HarvestMoonOpenMenuTracker,
333        "farm_entrance_test": HarvestMoon3FarmEntranceTracker,
334        "village_entrance_test": HarvestMoon3VillageEntranceTracker,
335        "grassland_entrance_test": HarvestMoon3GrasslandEntranceTracker, 
336        "forest_entrance_test": HarvestMoon3ForestEntranceTracker,
337        "cliff_entrance_test": HarvestMoon3CliffEntranceTracker,
338        "mountain_entrance_test": HarvestMoon3MountainEntranceTracker,
339        "read_ferry_sign_test": HarvestMoon3ReadFerrySignTracker,
340        "find_secret_savings_test": HarvestMoon3FindSecretSavingsTracker,
341        "choose_tea_to_buy_test": HarvestMoon3ChooseTeaTracker,
342        "choose_asparagus_seeds_to_buy_test": HarvestMoon3ChooseAsparagusSeedsTracker,
343        "choose_potato_seeds_to_buy_test": HarvestMoon3BuyPotatoSeedsTracker,
344        "choose_turnip_seeds_to_buy_test": HarvestMoon3BuyTurnipSeedsTracker,
345        "fill_cow_fodder_test": HarvestMoon3FeedCowFodderTracker,
346        "break_rock_test": HarvestMoon3BreakRockTracker,
347        "remove_weed_test": HarvestMoon3RemoveWeedTracker,
348        "pick_up_cherry_test": HarvestMoon3PickUpCherryTracker,
349        "water_center_watermelon_test": HarvestMoon3WaterCenterWatermelonTracker,
350        "hatch_egg_test": HarvestMoon3HatchEggTracker,
351        "fill_chicken_fodder_test": HarvestMoon3FillChickenFodderTracker,
352        "buy_fodder_set_test": HarvestMoon3BuyFodderSetTracker,
353        "buy_horse_medicine_test": HarvestMoon3BuyHorseMedicineTracker,
354        "speak_to_kate_test": HarvestMoon3SpeakToKateTracker,
355        "water_center_spotato_test": HarvestMoon3WaterCenterSPotatoTracker,
356        "harvest_target_potato_test": HarvestMoon3HarvestTargetPotatoTracker,
357        "read_animal_ch2_test": HarvestMoon3ReadAnimalCh2Tracker,
358        "harvest_center_turnip_test": HarvestMoon3HarvestCenterTurnipTracker,
359        "sell_chicken_test": HarvestMoon3SellChickenTracker,
360        "pick_up_berry_test": HarvestMoon3PickBerryTracker,
361        "check_player_money_test": HarvestMoon3CheckPlayerMoneyTracker,
362        "harvest_center_eggplant_test": HarvestMoon3HarvestCenterEggplantTopTracker,
363
364    },
365}
366""" Mapping of game names to their available StateTracker classes with string identifiers. """
367
368
369AVAILABLE_EMULATORS: Dict[str, Dict[str, Type[Emulator]]] = {
370    "harvest_moon_1": {"default": Emulator},
371    "harvest_moon_2": {"default": Emulator},
372    "harvest_moon_3": {"default": Emulator},
373}
374""" Mapping of game names to their available Emulator classes with string identifiers. """
GAME_TO_GB_NAME = {'harvest_moon_1': 'HarvestMoon1.gbc', 'harvest_moon_2': 'HarvestMoon2.gbc', 'harvest_moon_3': 'HarvestMoon3.gbc'}

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

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]]] = {'harvest_moon_1': {'default': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOCRTracker'>, 'cow_barn_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonCowBarnTracker'>, 'chicken_coop_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonChickenCoopTracker'>, 'storage_shed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonStorageTracker'>, 'pickup_watercan_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupWaterCanTracker'>, 'pickup_cowbell_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupCowBellTracker'>, 'go_to_sleep_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonGoToSleepTracker'>, 'feed_spirit_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonFeedSpiritTracker'>, 'help_spirit_earthquake_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonHelpSpiritEarthquakeTracker'>, 'water_turnip_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonWaterTurnipTracker'>, 'buy_material_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyMaterialTracker'>, 'buy_chicken_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyChickenTracker'>, 'buy_cow_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyCowTracker'>, 'sell_chicken_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonSellChickenTracker'>, 'buy_cow_brush_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyCowBrushTracker'>, 'buy_saddlebag_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuySaddlebagTracker'>, 'buy_milker_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyMilkerTracker'>, 'buy_rice_ball_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyRiceBallTracker'>, 'open_storage_list_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOpenStorageListTracker'>, 'find_rainy_money_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonFindRainyMoneyTracker'>, 'find_lost_bird_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonFindLostBirdTracker'>, 'speak_to_blue_hair_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonSpeakToBlueHairGirlTracker'>, 'fill_chicken_fodder_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonFillChickenFodderTracker'>, 'pickup_sickle_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupSickleTracker'>, 'pickup_hoe_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupHoeTracker'>, 'pickup_hammer_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupHammerTracker'>, 'pickup_grass_seed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonPickupGrassSeedTracker'>, 'buy_croissant_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyCroissantTracker'>, 'buy_cake_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyCakeTracker'>, 'buy_grape_juice_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonBuyGrapeJuiceTracker'>, 'go_to_church_pray_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonGoToChurchPrayTracker'>, 'speak_to_golden_hair_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonSpeakToGoldenHairGirlTracker'>, 'speak_to_pink_hair_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonSpeakToPinkHairGirlTracker'>, 'speak_to_blue_hair_girl_wg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1SpeakToBlueHairGirlWGTracker'>, 'speak_to_pink_hair_girl_wg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1SpeakToPinkHairGirlWGTracker'>, 'speak_to_red_hair_girl_wg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1SpeakToRedHairGirlWGTracker'>, 'open_menu_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOpenMenuTracker'>, 'hatch_egg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1HatchEggTracker'>, 'break_rock_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1BreakRockTracker'>, 'break_rightmost_rock_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1BreakRightmostRockTracker'>, 'remove_lowest_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1RemoveLowestWeedTracker'>, 'cut_lowest_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1CutLowestWeedTracker'>, 'remove_top_left_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1RemoveTopLeftWeedTracker'>, 'cut_top_left_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1CutTopLeftWeedTracker'>, 'harvest_center_grassline_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1HarvestCenterGrasslineTracker'>, 'restore_fence_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1RestoreFenceTracker'>, 'harvest_center_turnip_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1HarvestCenterTurnipTracker'>, 'water_center_turnip_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1WaterCenterTurnipTracker'>, 'water_center_potato_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1WaterCenterPotatoTracker'>, 'harvest_center_potato_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1HarvestCenterPotatoTracker'>, 'get_home_expansion_estimate_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1GetHomeExpansionEstimateTracker'>, 'fill_cow_fodder_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon1FillCowFodderTracker'>}, 'harvest_moon_2': {'default': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOCRTracker'>, 'cow_barn_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2CowBarnTracker'>, 'chicken_coop_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ChickenCoopTracker'>, 'hospital_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2HospitalEntranceTracker'>, 'animal_shop_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2AnimalShopEntranceTracker'>, 'library_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2LibraryEntranceTracker'>, 'tool_shop_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ToolShopEntranceTracker'>, 'carpenter_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2CarpenterEntranceTracker'>, 'find_lucky_money_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2FindLuckyMoneyTracker'>, 'flower_shop_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2FlowerShopEntranceTracker'>, 'get_bridge_estimate_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2GetBridgeEstimateTracker'>, 'buy_milker_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyMilkerTracker'>, 'restaurant_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2RestaurantEntranceTracker'>, 'buy_lunch_set_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyLunchSetTracker'>, 'buy_beverage_set_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyBeverageSetTracker'>, 'buy_todays_special_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyTodaysSpecialTracker'>, 'go_to_bed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2GoToBedTracker'>, 'read_secret_garden_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ReadSecretGardenSignTracker'>, 'read_crop_field_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ReadCropFieldSignTracker'>, 'equip_sickle_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipSickleTracker'>, 'equip_hammer_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipHammerTracker'>, 'equip_fishing_rod_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipFishingRodTracker'>, 'equip_net_replacing_ax_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipNetReplacingAxTracker'>, 'equip_rosemary_seeds_replacing_ax_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipRosemarySeedsReplacingAxTracker'>, 'equip_sickle_replacing_sprinkler_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipSickleReplacingSprinklerTracker'>, 'equip_net_replacing_hoe_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2EquipNetReplacingHoeTracker'>, 'cross_500m_line_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2Cross500mLineTracker'>, 'cross_1000m_line_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2Cross1000mLineTracker'>, 'harvest_center_eggplant_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2HarvestCenterEggplantTracker'>, 'harvest_center_carrot_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2HarvestCenterCarrotTracker'>, 'water_center_potato_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2WaterCenterPotatoTracker'>, 'water_center_asparagus_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2WaterCenterAsparagusTracker'>, 'read_computers_article_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ReadComputersArticleTracker'>, 'read_boulders_article_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ReadBouldersArticleTracker'>, 'read_selling_crops_article_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2ReadCropsArticleTracker'>, 'remove_leftmost_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2RemoveLeftmostWeedTracker'>, 'pick_berry_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2PickBerryTracker'>, 'pick_berry_above_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2PickBerryAboveTracker'>, 'speak_to_blue_hair_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2SpeakToBlueHairGirlTracker'>, 'speak_to_purple_hair_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2SpeakToPurpleHairGirlTracker'>, 'speak_to_blonde_girl_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2SpeakToBlondeGirlTracker'>, 'hatch_egg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2HatchEggTracker'>, 'buy_cow_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyCowTracker'>, 'sell_cow_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2SellCowTracker'>, 'sell_chicken_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2SellChickenTracker'>, 'get_hothouse_estimate_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2GetHothouseEstimateTracker'>, 'buy_chicken_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2BuyChickenTracker'>, 'fill_chicken_fodder_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2FillChickenFodderTracker'>, 'water_corn_field_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2WaterCornFieldTracker'>, 'cut_center_corn_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2CutCenterCornTracker'>, 'water_cabbage_field_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon2WaterCabbageFieldTracker'>, 'storage_shed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonStorageTracker'>, 'water_turnip_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonWaterTurnipTracker'>, 'open_storage_list_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOpenStorageListTracker'>, 'read_village_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonReadVillageSignTracker'>, 'read_farm_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonReadFarmSignTracker'>, 'read_notice_board_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonReadNoticeBoardTracker'>, 'open_menu_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOpenMenuTracker'>}, 'harvest_moon_3': {'default': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOCRTracker'>, 'chicken_coop_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ChickenCoopTracker'>, 'read_secret_garden_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ReadSecretGardenSignTracker'>, 'read_morning_market_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ReadMorningMarketSignTracker'>, 'read_storage_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ReadStorageSignTracker'>, 'speak_to_Kirk_village_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToKirkVillageTracker'>, 'take_ferry_back_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3TakeFerryTracker'>, 'speak_to_Joe_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToJoeTracker'>, 'speak_to_Lukia_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToLukiaTracker'>, 'speak_to_Lucus_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToLucusTracker'>, 'speak_to_Lyla_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToLylaTracker'>, 'buy_horse_saddle_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyHorseSaddleTracker'>, 'buy_flower_vase_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyFlowerVaseTracker'>, 'buy_meal_set_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyMealSetTracker'>, 'choose_coffee_to_buy_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyCoffeeTracker'>, 'shopping_mall_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ShoppingMallEntranceTracker'>, 'shopping_mall_second_floor_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ShoppingMallSecondFloorTracker'>, 'farmers_union_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3FarmersUnionEntranceTracker'>, 'aquarium_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3AquariumEntranceTracker'>, 'theatre_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3TheatreEntranceTracker'>, 'hot_spring_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3HotSpringEntranceTracker'>, 'open_menu_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoonOpenMenuTracker'>, 'farm_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3FarmEntranceTracker'>, 'village_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3VillageEntranceTracker'>, 'grassland_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3GrasslandEntranceTracker'>, 'forest_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ForestEntranceTracker'>, 'cliff_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3CliffEntranceTracker'>, 'mountain_entrance_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3MountainEntranceTracker'>, 'read_ferry_sign_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ReadFerrySignTracker'>, 'find_secret_savings_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3FindSecretSavingsTracker'>, 'choose_tea_to_buy_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ChooseTeaTracker'>, 'choose_asparagus_seeds_to_buy_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ChooseAsparagusSeedsTracker'>, 'choose_potato_seeds_to_buy_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyPotatoSeedsTracker'>, 'choose_turnip_seeds_to_buy_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyTurnipSeedsTracker'>, 'fill_cow_fodder_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3FeedCowFodderTracker'>, 'break_rock_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BreakRockTracker'>, 'remove_weed_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3RemoveWeedTracker'>, 'pick_up_cherry_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3PickUpCherryTracker'>, 'water_center_watermelon_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3WaterCenterWatermelonTracker'>, 'hatch_egg_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3HatchEggTracker'>, 'fill_chicken_fodder_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3FillChickenFodderTracker'>, 'buy_fodder_set_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyFodderSetTracker'>, 'buy_horse_medicine_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3BuyHorseMedicineTracker'>, 'speak_to_kate_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SpeakToKateTracker'>, 'water_center_spotato_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3WaterCenterSPotatoTracker'>, 'harvest_target_potato_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3HarvestTargetPotatoTracker'>, 'read_animal_ch2_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3ReadAnimalCh2Tracker'>, 'harvest_center_turnip_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3HarvestCenterTurnipTracker'>, 'sell_chicken_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3SellChickenTracker'>, 'pick_up_berry_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3PickBerryTracker'>, 'check_player_money_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3CheckPlayerMoneyTracker'>, 'harvest_center_eggplant_test': <class 'gameboy_worlds.emulation.harvest_moon.trackers.HarvestMoon3HarvestCenterEggplantTopTracker'>}}

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

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

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