ref: 70a08f116cc48d82908b440def4a5fbb2da9edff
dir: /features.h/
// This file declares extensions to the base game #ifndef ZELDA3_FEATURES_H_ #define ZELDA3_FEATURES_H_ #include "types.h" // Special RAM locations that are unused but I use for compat things. enum { kRam_APUI00 = 0x648, kRam_CrystalRotateCounter = 0x649, kRam_BugsFixed = 0x64a, kRam_Features0 = 0x64c, }; enum { // Poly rendered uses correct speed kBugFix_PolyRenderer = 1, kBugFix_AncillaOverwrites = 1, kBugFix_Latest = 1, }; // Enum values for kRam_Features0 enum { kFeatures0_ExtendScreen64 = 1, kFeatures0_SwitchLR = 2, kFeatures0_TurnWhileDashing = 4, kFeatures0_MirrorToDarkworld = 8, kFeatures0_CollectItemsWithSword = 16, kFeatures0_BreakPotsWithSword = 32, kFeatures0_DisableLowHealthBeep = 64, kFeatures0_SkipIntroOnKeypress = 128, kFeatures0_ShowMaxItemsInYellow = 256, kFeatures0_MoreActiveBombs = 512, // This is set for visual fixes that don't affect game behavior but will affect ram compare. kFeatures0_WidescreenVisualFixes = 1024, kFeatures0_CarryMoreRupees = 2048, kFeatures0_MiscBugFixes = 4096, kFeatures0_CancelBirdTravel = 8192, kFeatures0_GameChangingBugFixes = 16384, kFeatures0_SwitchLRLimit = 32768, }; #define enhanced_features0 (*(uint32*)(g_ram+0x64c)) #define msu_curr_sample (*(uint32*)(g_ram+0x650)) #define msu_volume (*(uint8*)(g_ram+0x654)) #define msu_track (*(uint8*)(g_ram+0x655)) #define hud_inventory_order ((uint8*)(g_ram + 0x225)) // 4x6 bytes #define hud_cur_item_x (*(uint8*)(g_ram+0x656)) #define hud_cur_item_l (*(uint8*)(g_ram+0x657)) #define hud_cur_item_r (*(uint8*)(g_ram+0x658)) extern uint32 g_wanted_zelda_features; #endif // ZELDA3_FEATURES_H_