Files
2024-01-22 08:51:26 -08:00

80 lines
2.4 KiB
C++

#ifndef JASBNKPARSER_H
#define JASBNKPARSER_H
#include "JSystem/JAudio/JASOscillator.h"
namespace JASystem {
class TBasicBank;
namespace BNKParser {
struct THeader {
/* 0x000 */ u8 field_0x0[0x24];
/* 0x024 */ u32 mInstOffsets[0x80];
/* 0x224 */ u8 field_0x224[0x190];
/* 0x3B4 */ u32 mPercOffsets[12];
};
struct TInst {
/* 0x00 */ u8 field_0x0[8];
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xC;
/* 0x10 */ u32 mOscOffsets[2];
/* 0x18 */ u32 mRandOffsets[2];
/* 0x20 */ u32 mSenseOffsets[2];
/* 0x28 */ u32 mKeyRegionCount;
/* 0x2C */ u32 mKeymapOffsets[2];
};
struct TKeymap {
/* 0x00 */ u8 field_0x0;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ u32 mVmapOffsets[1];
};
struct TOsc {
/* 0x00 */ u8 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x0C */ u32 field_0xC;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
};
struct TPerc {
/* 0x000 */ u32 mMagic;
/* 0x004 */ u8 field_0x4[0x84];
/* 0x088 */ u32 mPmapOffsets[0x80];
/* 0x288 */ s8 field_0x288[0x80];
/* 0x308 */ u16 field_0x308[0x80];
};
struct TPmap {
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ u32 mRandOffsets[2];
/* 0x10 */ u32 mVeloRegionCount;
/* 0x14 */ u32 mVeloRegionOffsets[1];
};
struct TRand {
/* 0x00 */ u8 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
};
struct TSense {
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ u8 field_0x2;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
};
struct TVmap {
/* 0x00 */ u8 field_0x0;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xC;
};
TBasicBank* createBasicBank(void*);
TOscillator::Osc_* findOscPtr(JASystem::TBasicBank*, JASystem::BNKParser::THeader*, JASystem::BNKParser::TOsc*);
s16* getOscTableEndPtr(s16*);
extern u32 sUsedHeapSize;
};
}
#endif /* JASBNKPARSER_H */