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 <stdint.h>
9#include <stdbool.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 const uint8_t* data;
90 size_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
101typedef struct zelda3_overworld_map {
102 uint8_t id;
103 uint8_t parent_id;
104 uint8_t quadrant_id;
105 uint8_t world_id;
106 uint8_t game_state;
109
110 uint8_t sprite_graphics[3];
111 uint8_t sprite_palette[3];
112 uint8_t area_music[4];
113 uint8_t static_graphics[16];
115
119typedef struct zelda3_overworld {
120 void *impl; // yaze::Overworld*
123
124typedef struct dungeon_sprite {
125 const char* name;
126 uint8_t id;
127 uint8_t subtype;
129
141
142typedef struct object_door {
143 short id;
144 uint8_t x;
145 uint8_t y;
146 uint8_t size;
147 uint8_t type;
148 uint8_t layer;
150
151typedef struct staircase {
152 uint8_t id;
153 uint8_t room;
154 const char* label;
156
157typedef struct chest {
158 uint8_t x;
159 uint8_t y;
160 uint8_t item;
161 bool picker;
164
165typedef struct chest_data {
166 uint8_t id;
167 bool size;
169
170typedef struct destination {
171 uint8_t index;
172 uint8_t target;
175
186
187#ifdef __cplusplus
188}
189#endif
190
191#endif // ZELDA_H
uint8_t id
Definition zelda.h:166
bool size
Definition zelda.h:167
Definition zelda.h:157
uint8_t y
Definition zelda.h:159
uint8_t item
Definition zelda.h:160
bool picker
Definition zelda.h:161
uint8_t x
Definition zelda.h:158
bool big_chest
Definition zelda.h:162
uint8_t target_layer
Definition zelda.h:173
uint8_t index
Definition zelda.h:171
uint8_t target
Definition zelda.h:172
const char * name
Definition zelda.h:125
uint8_t id
Definition zelda.h:126
uint8_t subtype
Definition zelda.h:127
short id
Definition zelda.h:143
uint8_t y
Definition zelda.h:145
uint8_t x
Definition zelda.h:144
uint8_t layer
Definition zelda.h:148
uint8_t size
Definition zelda.h:146
uint8_t type
Definition zelda.h:147
const char * label
Definition zelda.h:154
uint8_t room
Definition zelda.h:153
uint8_t id
Definition zelda.h:152
object_door * doors
Definition zelda.h:179
background2 bg2
Definition zelda.h:177
destination stairs[4]
Definition zelda.h:184
destination pits
Definition zelda.h:183
staircase * staircases
Definition zelda.h:180
dungeon_sprite * sprites
Definition zelda.h:178
chest_data * chests_in_room
Definition zelda.h:182
Primitive of an overworld map.
Definition zelda.h:101
uint8_t area_palette
Definition zelda.h:108
uint8_t sprite_palette[3]
Definition zelda.h:111
uint8_t parent_id
Definition zelda.h:103
uint8_t game_state
Definition zelda.h:106
uint8_t area_graphics
Definition zelda.h:107
uint8_t quadrant_id
Definition zelda.h:104
uint8_t area_music[4]
Definition zelda.h:112
uint8_t static_graphics[16]
Definition zelda.h:113
uint8_t sprite_graphics[3]
Definition zelda.h:110
Primitive of the overworld.
Definition zelda.h:119
void * impl
Definition zelda.h:120
zelda3_overworld_map ** maps
Definition zelda.h:121
const char * filename
Definition zelda.h:88
size_t size
Definition zelda.h:90
void * impl
Definition zelda.h:91
const uint8_t * data
Definition zelda.h:89
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:102
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:86
void yaze_save_rom(zelda3_rom *rom, const char *filename)
Definition yaze.cc:112
background2
Definition zelda.h:130
@ Parallax
Definition zelda.h:132
@ Translucent
Definition zelda.h:135
@ Normal
Definition zelda.h:137
@ Addition
Definition zelda.h:136
@ OnTop
Definition zelda.h:134
@ Dark
Definition zelda.h:133
@ DarkRoom
Definition zelda.h:139
@ Transparent
Definition zelda.h:138
@ Off
Definition zelda.h:131