Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JASBNKParser.h
Go to the documentation of this file.
1#ifndef JASBNKPARSER_H
2#define JASBNKPARSER_H
3
6
7class JASBank;
8class JASBasicBank;
9class JKRHeap;
10
11namespace JASBNKParser {
12 struct TFileHeader {
13 /* 0x0 */ int id;
14 /* 0x4 */ u32 mSize;
15 /* 0x8 */ u8 _08[4];
16 /* 0xC */ u32 mVersion;
17 };
18
19 namespace Ver1 {
20 struct TOsc {
21 /* 0x00 */ u8 _00[4];
22 /* 0x04 */ u8 mTarget;
23 /* 0x08 */ f32 _08;
24 /* 0x0C */ u32 mTableOffset;
25 /* 0x10 */ u32 _10;
26 /* 0x14 */ f32 mScale;
27 /* 0x18 */ f32 _18;
28 };
29
30 struct TPercData {
31 /* 0x00 */ f32 mVolume;
32 /* 0x04 */ f32 mPitch;
33 /* 0x08 */ u8 mPan;
34 /* 0x0A */ u16 mRelease;
35 /* 0x0C */ u32 field_0xc;
36 };
37
38 struct TChunk {
39 /* 0x0 */ u32 mID;
40 /* 0x4 */ u32 mSize;
41 };
42
43 struct TEnvtChunk : TChunk {
44 /* 0x8 */ u8 mData[0];
45 };
46
47 struct TOscChunk : TChunk {
48 /* 0x8 */ u32 mCount;
49 /* 0xC */ TOsc mOsc[0];
50 };
51
52 struct TListChunk : TChunk {
53 /* 0x8 */ u32 mCount;
54 /* 0xC */ u32 mOffsets[0];
55 };
56
57 TChunk* findChunk(void const*, u32);
58 JASBasicBank* createBasicBank(void const*, JKRHeap*);
59 };
60
61 namespace Ver0 {
62 template<typename T>
63 struct TOffset {
64 /* 0x0 */ u32 offset;
65 T* ptr(void const* stream) const { return JSUConvertOffsetToPtr<T>(stream, offset); }
66 };
67
68 struct TOsc {
69 /* 0x00 */ u8 mTarget;
70 /* 0x04 */ f32 field_0x4;
73 /* 0x10 */ f32 mScale;
74 /* 0x14 */ f32 field_0x14;
75 };
76
77 struct TVmap {
78 /* 0x00 */ u8 field_0x0[4];
79 /* 0x04 */ u32 field_0x4;
80 /* 0x08 */ f32 field_0x8;
81 /* 0x0C */ f32 field_0xc;
82 };
83
84 struct TKeymap {
85 /* 0x00 */ u8 mHighKey;
86 /* 0x01 */ u8 field_0x1[7];
88 };
89
90 struct TInst {
91 /* 0x00 */ u8 field_0x0[8];
92 /* 0x08 */ f32 mVolume;
93 /* 0x0C */ f32 mPitch;
95 /* 0x18 */ u8 field_0x18[0x10];
96 /* 0x28 */ u32 mKeyRegionCount;
98 };
99
100 struct TPmap {
101 /* 0x00 */ f32 mVolume;
102 /* 0x04 */ f32 mPitch;
103 /* 0x08 */ u8 field_0x8[0xc];
105 };
106
107 struct TPerc {
108 /* 0x000 */ u32 mMagic;
109 /* 0x000 */ u8 field_0x0[0x84];
110 /* 0x088 */ TOffset<TPmap> mPmapOffset[0x80];
111 /* 0x288 */ s8 mPan[0x80];
112 /* 0x308 */ u16 mRelease[0x80];
113 };
114
115 struct TOffsetData {
116 /* 0x000 */ u8 field_0x20[4];
117 /* 0x004 */ TOffset<TInst> mInstOffset[0x80];
118 /* 0x204 */ u8 field_0x204[0x190];
120 };
121
122 struct THeader {
123 /* 0x00 */ u8 field_0x0[0x20];
125 };
126
127 JASBasicBank* createBasicBank(void const*, JKRHeap*);
130 };
131
132 JASBank* createBank(void const*, JKRHeap*);
133 JASBasicBank* createBasicBank(void const*, JKRHeap*);
134
135 inline u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
136
137 extern u32 sUsedHeapSize;
138};
139
140
141#endif /* JASBNKPARSER_H */
Definition JASBank.h:18
Definition JASBasicBank.h:8
Definition JKRHeap.h:20
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
T * JSUConvertOffsetToPtr(const void *, const void *)
Definition JSupport.h:25
JASBasicBank * createBasicBank(void const *, JKRHeap *)
Definition JASBNKParser.cpp:158
JASOscillator::Point const * getOscTableEndPtr(JASOscillator::Point const *)
Definition JASBNKParser.cpp:300
JASOscillator::Data * findOscPtr(JASBasicBank *, THeader const *, TOsc const *)
Definition JASBNKParser.cpp:276
TChunk * findChunk(void const *, u32)
Definition JASBNKParser.cpp:41
JASBasicBank * createBasicBank(void const *, JKRHeap *)
Definition JASBNKParser.cpp:54
Definition JASBNKParser.h:11
u32 sUsedHeapSize
Definition JASBNKParser.cpp:16
JASBasicBank * createBasicBank(void const *, JKRHeap *)
Definition JASBNKParser.cpp:18
JASBank * createBank(void const *, JKRHeap *)
Definition JASBNKParser.cpp:12
u32 getBankNumber(const void *param_0)
Definition JASBNKParser.h:135
Definition JASBNKParser.h:12
int id
Definition JASBNKParser.h:13
u32 mVersion
Definition JASBNKParser.h:16
u32 mSize
Definition JASBNKParser.h:14
u8 _08[4]
Definition JASBNKParser.h:15
Definition JASBNKParser.h:122
u8 field_0x0[0x20]
Definition JASBNKParser.h:123
TOffsetData mOffsets
Definition JASBNKParser.h:124
Definition JASBNKParser.h:90
u32 mKeyRegionCount
Definition JASBNKParser.h:96
f32 mPitch
Definition JASBNKParser.h:93
TOffset< TOsc > mOscOffset[2]
Definition JASBNKParser.h:94
f32 mVolume
Definition JASBNKParser.h:92
u8 field_0x0[8]
Definition JASBNKParser.h:91
TOffset< TKeymap > mKeymapOffset[0]
Definition JASBNKParser.h:97
u8 field_0x18[0x10]
Definition JASBNKParser.h:95
Definition JASBNKParser.h:84
u8 mHighKey
Definition JASBNKParser.h:85
TOffset< TVmap > mVmapOffset
Definition JASBNKParser.h:87
u8 field_0x1[7]
Definition JASBNKParser.h:86
Definition JASBNKParser.h:115
u8 field_0x20[4]
Definition JASBNKParser.h:116
TOffset< TInst > mInstOffset[0x80]
Definition JASBNKParser.h:117
u8 field_0x204[0x190]
Definition JASBNKParser.h:118
TOffset< TPerc > mPercOffset[12]
Definition JASBNKParser.h:119
Definition JASBNKParser.h:63
u32 offset
Definition JASBNKParser.h:64
T * ptr(void const *stream) const
Definition JASBNKParser.h:65
Definition JASBNKParser.h:68
f32 mScale
Definition JASBNKParser.h:73
f32 field_0x4
Definition JASBNKParser.h:70
TOffset< JASOscillator::Point > field_0xc
Definition JASBNKParser.h:72
TOffset< JASOscillator::Point > mPointOffset
Definition JASBNKParser.h:71
u8 mTarget
Definition JASBNKParser.h:69
f32 field_0x14
Definition JASBNKParser.h:74
Definition JASBNKParser.h:107
TOffset< TPmap > mPmapOffset[0x80]
Definition JASBNKParser.h:110
s8 mPan[0x80]
Definition JASBNKParser.h:111
u8 field_0x0[0x84]
Definition JASBNKParser.h:109
u32 mMagic
Definition JASBNKParser.h:108
u16 mRelease[0x80]
Definition JASBNKParser.h:112
Definition JASBNKParser.h:100
f32 mVolume
Definition JASBNKParser.h:101
TOffset< TVmap > mVmapOffset
Definition JASBNKParser.h:104
u8 field_0x8[0xc]
Definition JASBNKParser.h:103
f32 mPitch
Definition JASBNKParser.h:102
Definition JASBNKParser.h:77
u32 field_0x4
Definition JASBNKParser.h:79
f32 field_0x8
Definition JASBNKParser.h:80
u8 field_0x0[4]
Definition JASBNKParser.h:78
f32 field_0xc
Definition JASBNKParser.h:81
Definition JASBNKParser.h:38
u32 mSize
Definition JASBNKParser.h:40
u32 mID
Definition JASBNKParser.h:39
Definition JASBNKParser.h:43
u8 mData[0]
Definition JASBNKParser.h:44
Definition JASBNKParser.h:52
u32 mOffsets[0]
Definition JASBNKParser.h:54
u32 mCount
Definition JASBNKParser.h:53
Definition JASBNKParser.h:47
u32 mCount
Definition JASBNKParser.h:48
TOsc mOsc[0]
Definition JASBNKParser.h:49
Definition JASBNKParser.h:20
u8 mTarget
Definition JASBNKParser.h:22
f32 _18
Definition JASBNKParser.h:27
u8 _00[4]
Definition JASBNKParser.h:21
f32 _08
Definition JASBNKParser.h:23
f32 mScale
Definition JASBNKParser.h:26
u32 _10
Definition JASBNKParser.h:25
u32 mTableOffset
Definition JASBNKParser.h:24
Definition JASBNKParser.h:30
u8 mPan
Definition JASBNKParser.h:33
u32 field_0xc
Definition JASBNKParser.h:35
u16 mRelease
Definition JASBNKParser.h:34
f32 mVolume
Definition JASBNKParser.h:31
f32 mPitch
Definition JASBNKParser.h:32
Definition JASOscillator.h:37
Definition JASOscillator.h:11