forked from snesrev/zelda3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
features.h
65 lines (48 loc) · 1.66 KB
/
features.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// 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,
kFeatures0_DimFlashes = 65536,
};
#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_