ref: a7a859b9652859b33a452bb436a3bc9b60a3e5bd
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, }; #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_cur_item_x (*(uint8*)(g_ram+0x656)) #define hud_inventory_order ((uint8*)(g_ram + 0x225)) // 4x6 bytes extern uint32 g_wanted_zelda_features; extern bool msu_enabled; #endif // ZELDA3_FEATURES_H_