yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
zelda.h
Go to the documentation of this file.
1#ifndef ZELDA_H
2#define ZELDA_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <stdbool.h>
9#include <stdint.h>
10
15 US = 1, // US version
16 JP = 2, // JP version
17 SD = 3, // Super Donkey Proto (Experimental)
18 RANDO = 4, // Randomizer (Unimplemented)
19};
20
44
45const static zelda3_version_pointers zelda3_us_pointers = {
46 0x10275, // kGfxAnimatedPointer
47 0x5D97, // kOverworldGfxGroups1
48 0x6073, // kOverworldGfxGroups2
49 0x1794D, // kCompressedAllMap32PointersHigh
50 0x17B2D, // kCompressedAllMap32PointersLow
51 0x75504, // kOverworldMapPaletteGroup
52 0x77664, // kOverlayPointers
53 0x0E, // kOverlayPointersBank
54 0x71459, // kOverworldTilesType
55 0x4F80, // kOverworldGfxPtr1
56 0x505F, // kOverworldGfxPtr2
57 0x513E, // kOverworldGfxPtr3
58 0x18000, // kMap32TileTL
59 0x1B400, // kMap32TileTR
60 0x20000, // kMap32TileBL
61 0x23400, // kMap32TileBR
62 0x5B57, // kSpriteBlocksetPointer
63 0x75460, // kDungeonPalettesGroups
64};
65
66const static zelda3_version_pointers zelda3_jp_pointers = {
67 0x10624, // kGfxAnimatedPointer
68 0x5DD7, // kOverworldGfxGroups1
69 0x60B3, // kOverworldGfxGroups2
70 0x176B1, // kCompressedAllMap32PointersHigh
71 0x17891, // kCompressedAllMap32PointersLow
72 0x67E74, // kOverworldMapPaletteGroup
73 0x3FAF4, // kOverlayPointers
74 0x07, // kOverlayPointersBank
75 0x7FD94, // kOverworldTilesType
76 0x4FC0, // kOverworldGfxPtr1
77 0x509F, // kOverworldGfxPtr2
78 0x517E, // kOverworldGfxPtr3
79 0x18000, // kMap32TileTL
80 0x1B3C0, // kMap32TileTR
81 0x20000, // kMap32TileBL
82 0x233C0, // kMap32TileBR
83 0x5B97, // kSpriteBlocksetPointer
84 0x67DD0, // kDungeonPalettesGroups
85};
86
87typedef struct zelda3_rom {
88 const char* filename;
89 uint8_t* data;
90 uint64_t size;
91 void* impl; // yaze::Rom*
93
94zelda3_rom* yaze_load_rom(const char* filename);
96void yaze_save_rom(zelda3_rom* rom, const char* filename);
97
102typedef struct zelda3_message {
103 uint8_t id;
104 uint8_t address;
105 uint8_t *raw_string;
107 uint8_t *data;
108 uint8_t *data_parsed;
110
114typedef struct zelda3_overworld_map {
115 uint8_t id;
116 uint8_t parent_id;
117 uint8_t quadrant_id;
118 uint8_t world_id;
119 uint8_t game_state;
122
123 uint8_t sprite_graphics[3];
124 uint8_t sprite_palette[3];
125 uint8_t area_music[4];
126 uint8_t static_graphics[16];
128
132typedef struct zelda3_overworld {
133 void* impl; // yaze::Overworld*
136
137typedef struct dungeon_sprite {
138 const char* name;
139 uint8_t id;
140 uint8_t subtype;
142
154
155typedef struct object_door {
156 short id;
157 uint8_t x;
158 uint8_t y;
159 uint8_t size;
160 uint8_t type;
161 uint8_t layer;
163
164typedef struct staircase {
165 uint8_t id;
166 uint8_t room;
167 const char* label;
169
170typedef struct chest {
171 uint8_t x;
172 uint8_t y;
173 uint8_t item;
174 bool picker;
177
178typedef struct chest_data {
179 uint8_t id;
180 bool size;
182
183typedef struct destination {
184 uint8_t index;
185 uint8_t target;
188
199
200#ifdef __cplusplus
201}
202#endif
203
204#endif // ZELDA_H
uint8_t id
Definition zelda.h:179
bool size
Definition zelda.h:180
Definition zelda.h:170
uint8_t y
Definition zelda.h:172
uint8_t item
Definition zelda.h:173
bool picker
Definition zelda.h:174
uint8_t x
Definition zelda.h:171
bool big_chest
Definition zelda.h:175
uint8_t target_layer
Definition zelda.h:186
uint8_t index
Definition zelda.h:184
uint8_t target
Definition zelda.h:185
const char * name
Definition zelda.h:138
uint8_t id
Definition zelda.h:139
uint8_t subtype
Definition zelda.h:140
short id
Definition zelda.h:156
uint8_t y
Definition zelda.h:158
uint8_t x
Definition zelda.h:157
uint8_t layer
Definition zelda.h:161
uint8_t size
Definition zelda.h:159
uint8_t type
Definition zelda.h:160
const char * label
Definition zelda.h:167
uint8_t room
Definition zelda.h:166
uint8_t id
Definition zelda.h:165
object_door * doors
Definition zelda.h:192
background2 bg2
Definition zelda.h:190
destination stairs[4]
Definition zelda.h:197
destination pits
Definition zelda.h:196
staircase * staircases
Definition zelda.h:193
dungeon_sprite * sprites
Definition zelda.h:191
chest_data * chests_in_room
Definition zelda.h:195
Primitive of a message.
Definition zelda.h:102
uint8_t address
Definition zelda.h:104
uint8_t id
Definition zelda.h:103
uint8_t * data_parsed
Definition zelda.h:108
uint8_t * contents_parsed
Definition zelda.h:106
uint8_t * data
Definition zelda.h:107
uint8_t * raw_string
Definition zelda.h:105
Primitive of an overworld map.
Definition zelda.h:114
uint8_t area_palette
Definition zelda.h:121
uint8_t sprite_palette[3]
Definition zelda.h:124
uint8_t parent_id
Definition zelda.h:116
uint8_t game_state
Definition zelda.h:119
uint8_t area_graphics
Definition zelda.h:120
uint8_t quadrant_id
Definition zelda.h:117
uint8_t area_music[4]
Definition zelda.h:125
uint8_t static_graphics[16]
Definition zelda.h:126
uint8_t sprite_graphics[3]
Definition zelda.h:123
Primitive of the overworld.
Definition zelda.h:132
void * impl
Definition zelda.h:133
zelda3_overworld_map ** maps
Definition zelda.h:134
uint8_t * data
Definition zelda.h:89
const char * filename
Definition zelda.h:88
uint64_t size
Definition zelda.h:90
void * impl
Definition zelda.h:91
Pointers for each version of the game.
Definition zelda.h:24
uint32_t kOverworldMapPaletteGroup
Definition zelda.h:30
uint32_t kOverlayPointers
Definition zelda.h:31
uint32_t kOverworldTilesType
Definition zelda.h:33
uint32_t kMap32TileTR
Definition zelda.h:38
uint32_t kCompressedAllMap32PointersHigh
Definition zelda.h:28
uint32_t kGfxAnimatedPointer
Definition zelda.h:25
uint32_t kOverworldGfxGroups1
Definition zelda.h:26
uint32_t kMap32TileTL
Definition zelda.h:37
uint32_t kOverworldGfxPtr1
Definition zelda.h:34
uint32_t kOverworldGfxPtr2
Definition zelda.h:35
uint32_t kMap32TileBL
Definition zelda.h:39
uint32_t kSpriteBlocksetPointer
Definition zelda.h:41
uint32_t kOverworldGfxGroups2
Definition zelda.h:27
uint32_t kOverworldGfxPtr3
Definition zelda.h:36
uint32_t kMap32TileBR
Definition zelda.h:40
uint32_t kCompressedAllMap32PointersLow
Definition zelda.h:29
uint32_t kOverlayPointersBank
Definition zelda.h:32
uint32_t kDungeonPalettesGroups
Definition zelda.h:42
void yaze_unload_rom(zelda3_rom *rom)
Definition yaze.cc:92
zelda3_version
Different versions of the game supported by yaze.
Definition zelda.h:14
@ US
Definition zelda.h:15
@ SD
Definition zelda.h:17
@ RANDO
Definition zelda.h:18
@ JP
Definition zelda.h:16
zelda3_rom * yaze_load_rom(const char *filename)
Definition yaze.cc:76
void yaze_save_rom(zelda3_rom *rom, const char *filename)
Definition yaze.cc:102
background2
Definition zelda.h:143
@ Parallax
Definition zelda.h:145
@ Translucent
Definition zelda.h:148
@ Normal
Definition zelda.h:150
@ Addition
Definition zelda.h:149
@ OnTop
Definition zelda.h:147
@ Dark
Definition zelda.h:146
@ DarkRoom
Definition zelda.h:152
@ Transparent
Definition zelda.h:151
@ Off
Definition zelda.h:144