mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-28 08:24:59 -04:00
+9
-9
@@ -649,7 +649,7 @@ config.libs = [
|
||||
JSystemLib(
|
||||
"JAudio",
|
||||
[
|
||||
Object(NonMatching, "JSystem/JAudio/JASCalc.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASCalc.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASAiCtrl.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASDvdThread.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASCallback.cpp"),
|
||||
@@ -660,7 +660,7 @@ config.libs = [
|
||||
Object(NonMatching, "JSystem/JAudio/JASProbe.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASKernelDebug.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASCmdStack.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASSystemHeap.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASSystemHeap.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASNoteMgr.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASOuterParam.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASPlayer_impl.cpp"),
|
||||
@@ -668,9 +668,9 @@ config.libs = [
|
||||
Object(NonMatching, "JSystem/JAudio/JASSeqCtrl.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASSeqParser.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASTrack.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASTrackInterrupt.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASTrackPort.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBank.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASTrackInterrupt.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASTrackPort.cpp"),
|
||||
Object(Matching, "JSystem/JAudio/JASBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASWaveBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBasicBank.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASBasicInst.cpp"),
|
||||
@@ -696,10 +696,10 @@ config.libs = [
|
||||
Object(NonMatching, "JSystem/JAudio/JASChannelMgr.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASOscillator.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JASDriverTables.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/dspproc.c"),
|
||||
Object(NonMatching, "JSystem/JAudio/dsptask.c"),
|
||||
Object(NonMatching, "JSystem/JAudio/osdsp.c"),
|
||||
Object(NonMatching, "JSystem/JAudio/osdsp_task.c"),
|
||||
Object(Matching, "JSystem/JAudio/dspproc.c", extra_cflags="-lang c++ -O4 -func_align 32"),
|
||||
Object(NonMatching, "JSystem/JAudio/dsptask.c", extra_cflags="-lang c++ -O4 -func_align 32"),
|
||||
Object(Matching, "JSystem/JAudio/osdsp.c", extra_cflags="-lang c++ -O4 -func_align 32 -str nopool"),
|
||||
Object(Matching, "JSystem/JAudio/osdsp_task.c", extra_cflags="-lang c++ -O4 -func_align 32"),
|
||||
Object(NonMatching, "JSystem/JAudio/JAIAnimation.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JAIBasic.cpp"),
|
||||
Object(NonMatching, "JSystem/JAudio/JAIBankWave.cpp"),
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef JASBANK_H
|
||||
#define JASBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JKRHeap;
|
||||
|
||||
namespace JASystem {
|
||||
namespace TBank {
|
||||
JKRHeap* getCurrentHeap();
|
||||
|
||||
extern JKRHeap* sCurrentHeap;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASBANK_H */
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef JASCALC_H
|
||||
#define JASCALC_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace Calc {
|
||||
void initSinfT();
|
||||
f32 sinfT(f32);
|
||||
f32 sinfDolby2(f32);
|
||||
void imixcopy(const s16*, const s16*, s16*, s32);
|
||||
void bcopyfast(const u32*, u32*, u32);
|
||||
void bcopy(const void*, void*, u32);
|
||||
void bzerofast(void*, u32);
|
||||
void bzero(void*, u32);
|
||||
|
||||
extern f32* JASC_SINTABLE;
|
||||
extern f32* JASC_DOL2TABLE;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASCALC_H */
|
||||
@@ -0,0 +1,139 @@
|
||||
#ifndef JASDSPINTERFACE_H
|
||||
#define JASDSPINTERFACE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace Driver {
|
||||
struct Wave_ {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2[0x10 - 0x2];
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ int field_0x14;
|
||||
/* 0x18 */ int field_0x18;
|
||||
/* 0x1C */ int field_0x1c;
|
||||
/* 0x20 */ short field_0x20;
|
||||
/* 0x22 */ short field_0x22;
|
||||
};
|
||||
}
|
||||
namespace DSPInterface {
|
||||
struct FxlineConfig_ {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x02 */ u16 field_0x2;
|
||||
/* 0x04 */ short field_0x4;
|
||||
/* 0x06 */ u16 field_0x6;
|
||||
/* 0x08 */ short field_0x8;
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x10 */ short field_0x10[8];
|
||||
};
|
||||
|
||||
class FXBuffer {
|
||||
public:
|
||||
bool setFXLine(s16* param_1, FxlineConfig_* param_2);
|
||||
|
||||
/* 0x00 */ short field_0x0;
|
||||
/* 0x02 */ short field_0x2;
|
||||
/* 0x04 */ s16* field_0x4;
|
||||
/* 0x08 */ short field_0x8;
|
||||
/* 0x0A */ short field_0xa;
|
||||
/* 0x0C */ short field_0xc;
|
||||
/* 0x0E */ short field_0xe;
|
||||
/* 0x10 */ short field_0x10[8];
|
||||
};
|
||||
|
||||
class DSPBuffer {
|
||||
public:
|
||||
void allocInit();
|
||||
void playStart();
|
||||
void setWaveInfo(Driver::Wave_* param_1, u32 param_2, u32 param_3);
|
||||
void setOscInfo(u32 param_1);
|
||||
void initAutoMixer();
|
||||
void setAutoMixer(u16 param_1, u8 param_2, u8 param_3, u8 param_4, u8 param_5);
|
||||
void setPitch(u16 param_1);
|
||||
void setMixerInitDelayMax(u8 param_1);
|
||||
void setMixerInitVolume(u8 param_1, s16 param_2, u8 param_3);
|
||||
void setMixerVolume(u8 param_1, s16 param_2, u8 param_3);
|
||||
void setMixerVolumeOnly(u8 param_1, short param_2);
|
||||
void setPauseFlag(u8 param_1);
|
||||
void flushChannel();
|
||||
void initFilter();
|
||||
void setFilterMode(u16 param_1);
|
||||
void setIIRFilterParam(s16* param_1);
|
||||
void setFIR8FilterParam(s16* param_1);
|
||||
void setDistFilter(s16 param_1);
|
||||
void setBusConnect(u8 param_1, u8 param_2);
|
||||
|
||||
/* 0x00 */ u16 field_0x0;
|
||||
/* 0x02 */ u16 field_0x2;
|
||||
/* 0x04 */ u16 field_0x4;
|
||||
/* 0x06 */ u8 field0x6[0x8 - 0x6];
|
||||
/* 0x08 */ u16 field_0x8;
|
||||
/* 0x0A */ u8 field_0xa[0xc - 0xa];
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
/* 0x10 */ u16 field_0x10[1][4];
|
||||
/* 0x18 */ u8 field_0x18[0x50 - 0x18];
|
||||
/* 0x50 */ u16 field_0x50;
|
||||
/* 0x52 */ u16 field_0x52;
|
||||
/* 0x54 */ short field_0x54;
|
||||
/* 0x56 */ u16 field_0x56;
|
||||
/* 0x58 */ u16 field_0x58;
|
||||
/* 0x5A */ u8 field_0x5a[0x60 - 0x5a];
|
||||
/* 0x60 */ short field_0x60;
|
||||
/* 0x62 */ u8 field_0x62[0x64 - 0x62];
|
||||
/* 0x64 */ short field_0x64;
|
||||
/* 0x66 */ short field_0x66;
|
||||
/* 0x68 */ int field_0x68;
|
||||
/* 0x6C */ int field_0x6c;
|
||||
/* 0x70 */ u8 field_0x70[0x74 - 0x70];
|
||||
/* 0x74 */ int field_0x74;
|
||||
/* 0x78 */ short field_0x78[4];
|
||||
/* 0x80 */ short field_0x80[20];
|
||||
/* 0xA8 */ short field_0xa8[4];
|
||||
/* 0xB8 */ short field_0xb0[16];
|
||||
/* 0xD0 */ u8 field_0xd0[0x100 - 0xd0];
|
||||
/* 0x100 */ u16 field_0x100;
|
||||
/* 0x102 */ u16 field_0x102;
|
||||
/* 0x104 */ short field_0x104;
|
||||
/* 0x106 */ short field_0x106;
|
||||
/* 0x108 */ short field_0x108;
|
||||
/* 0x10A */ u16 field_0x10a;
|
||||
/* 0x10C */ int field_0x10c;
|
||||
/* 0x110 */ int field_0x110;
|
||||
/* 0x114 */ int field_0x114;
|
||||
/* 0x118 */ int field_0x118;
|
||||
/* 0x11C */ int field_0x11c;
|
||||
/* 0x120 */ short field_0x120[8];
|
||||
/* 0x130 */ u8 field_0x130[0x148 - 0x130];
|
||||
/* 0x148 */ short field_0x148[4];
|
||||
/* 0x150 */ short field_0x150;
|
||||
/* 0x152 */ u8 field_0x152[0x180 - 0x152];
|
||||
};
|
||||
|
||||
|
||||
void setDSPMixerLevel(float param_1);
|
||||
DSPBuffer* getDSPHandle(u8 param_1);
|
||||
void setFilterTable(short* param_1, short* param_2, u32 param_3);
|
||||
void flushBuffer();
|
||||
void invalChannelAll();
|
||||
void clearBuffer();
|
||||
void setupBuffer();
|
||||
void initBuffer();
|
||||
FXBuffer* getFXHandle(u8 param_1);
|
||||
|
||||
extern u16 SEND_TABLE[12];
|
||||
extern u32 DOLBY2_DELAY_BUF[];
|
||||
extern u16 JAS_DSP_PREFIX;
|
||||
extern DSPBuffer* CH_BUF;
|
||||
extern FXBuffer* FX_BUF;
|
||||
extern float sDSPVolume;
|
||||
|
||||
extern u32 DSPADPCM_FILTER[];
|
||||
extern u32 DSPRES_FILTER[];
|
||||
};
|
||||
}
|
||||
|
||||
u16 DSP_CreateMap2(u32 param_1);
|
||||
|
||||
#endif /* JASDSPINTERFACE_H */
|
||||
@@ -0,0 +1,59 @@
|
||||
#ifndef JASHEAPCTRL_H
|
||||
#define JASHEAPCTRL_H
|
||||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
namespace JASystem {
|
||||
namespace Kernel {
|
||||
class TDisposer {
|
||||
public:
|
||||
virtual void onDispose() {}
|
||||
};
|
||||
|
||||
class THeap {
|
||||
public:
|
||||
enum Type {
|
||||
Type0,
|
||||
Type1,
|
||||
};
|
||||
|
||||
THeap(TDisposer*);
|
||||
void initRootHeap(void*, u32, Type);
|
||||
bool alloc(THeap*, u32);
|
||||
bool free();
|
||||
void insertChild(THeap* param_1, THeap* param_2, void* param_3, u32 param_4, bool param_5);
|
||||
JASystem::Kernel::THeap* getTailHeap();
|
||||
u32 getTailOffset();
|
||||
u32 getCurOffset();
|
||||
|
||||
bool isAllocated() { return mBase; }
|
||||
|
||||
/* 0x00 */ JSUTree<THeap> mTree;
|
||||
/* 0x1C */ OSMutex mMutex;
|
||||
/* 0x34 */ TDisposer* mDisposer;
|
||||
/* 0x38 */ Type mType;
|
||||
/* 0x3C */ u8* mBase;
|
||||
/* 0x40 */ u32 mSize;
|
||||
/* 0x44 */ THeap* field_0x44;
|
||||
};
|
||||
|
||||
class TSolidHeap {
|
||||
public:
|
||||
TSolidHeap();
|
||||
~TSolidHeap() {}
|
||||
int alloc(long param_1);
|
||||
void freeAll();
|
||||
void init(u8* param_1, long param_2);
|
||||
int getRemain();
|
||||
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
/* 0x04 */ int field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
/* 0x0C */ int field_0xc;
|
||||
/* 0x10 */ int field_0x10;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASHEAPCTRL_H */
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef JASSYSTEMHEAP_H
|
||||
#define JASSYSTEMHEAP_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JKRSolidHeap;
|
||||
|
||||
extern JKRSolidHeap* JASDram;
|
||||
|
||||
namespace JASystem {
|
||||
namespace Kernel {
|
||||
class TSolidHeap;
|
||||
|
||||
void sysDramSetup(JKRSolidHeap*);
|
||||
void* allocFromSysDram(u32);
|
||||
void sysAramSetup(u32);
|
||||
void allocFromSysAramFull(u32*);
|
||||
|
||||
extern TSolidHeap audioAramHeap;
|
||||
extern u32 audioDramSize;
|
||||
extern u32 audioAramSize;
|
||||
extern int audioAramTop;
|
||||
extern int CARD_SECURITY_BUFFER;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* JASSYSTEMHEAP_H */
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef JASTRACKINTERRUPT_H
|
||||
#define JASTRACKINTERRUPT_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TIntrMgr {
|
||||
public:
|
||||
void init();
|
||||
void request(u32);
|
||||
void setIntr(u32, void*);
|
||||
void resetInter(u32);
|
||||
void* checkIntr();
|
||||
void timerProcess();
|
||||
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
/* 0x08 */ u32 field_0x8;
|
||||
/* 0x0C */ void* field_0xc[8];
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASTRACKINTERRUPT_H */
|
||||
@@ -0,0 +1,21 @@
|
||||
#ifndef JASTRACKPORT_H
|
||||
#define JASTRACKPORT_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JASystem {
|
||||
class TTrackPort {
|
||||
public:
|
||||
void init();
|
||||
u16 readImport(int);
|
||||
u16 readExport(int);
|
||||
void writeImport(int, u16);
|
||||
void writeExport(int, u16);
|
||||
|
||||
/* 0x00 */ u8 field_0x0[16];
|
||||
/* 0x10 */ u8 field_0x10[16];
|
||||
/* 0x20 */ u16 field_0x20[16];
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* JASTRACKPORT_H */
|
||||
@@ -0,0 +1,15 @@
|
||||
#ifndef DSPPROC_H
|
||||
#define DSPPROC_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void DSPReleaseHalt2(u32);
|
||||
void DSPReleaseHalt();
|
||||
void setup_callback(u16);
|
||||
void DsetupTable(u32, u32, u32, u32, u32);
|
||||
void DsetMixerLevel(f32);
|
||||
void DsyncFrame(u32, u32, u32);
|
||||
void dummy_callback(u16);
|
||||
void DsetDolbyDelay(u32, u16);
|
||||
|
||||
#endif /* DSPPROC_H */
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef DSPTASK_H
|
||||
#define DSPTASK_H
|
||||
|
||||
#include "dolphin/dsp.h"
|
||||
|
||||
void DspHandShake(void*);
|
||||
void DspBoot(DSPCallback);
|
||||
int DSPSendCommands2(u32*, u32, void (*)(u16));
|
||||
void DspInitWork();
|
||||
int DspStartWork(u32, void (*)(u16));
|
||||
void DspFinishWork(u16);
|
||||
|
||||
#endif /* DSPTASK_H */
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef OSDSP_H
|
||||
#define OSDSP_H
|
||||
|
||||
#include "dolphin/dsp.h"
|
||||
|
||||
void DSPAddPriorTask(STRUCT_DSP_TASK*);
|
||||
|
||||
#endif /* OSDSP_H */
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef OSDSP_TASK_H
|
||||
#define OSDSP_TASK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
typedef struct STRUCT_DSP_TASK DSPTaskInfo;
|
||||
typedef struct OSContext OSContext;
|
||||
|
||||
extern DSPTaskInfo* DSP_prior_task;
|
||||
|
||||
extern "C" void __DSPHandler(int, OSContext*);
|
||||
void DsyncFrame2(u32, u32, u32);
|
||||
void Dsp_Update_Request();
|
||||
bool Dsp_Running_Check();
|
||||
void Dsp_Running_Start();
|
||||
|
||||
#endif /* OSDSP_TASK_H */
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "dolphin/os/OSAlloc.h"
|
||||
|
||||
class JKRStdHeap : public JKRHeap {
|
||||
public:
|
||||
static JKRStdHeap* create(u32, JKRHeap*, bool);
|
||||
void do_destroy();
|
||||
JKRStdHeap(void*, u32, JKRHeap*, bool);
|
||||
@@ -31,4 +32,4 @@ class JKRStdHeap : public JKRHeap {
|
||||
OSHeapHandle mHeapHandle;
|
||||
};
|
||||
|
||||
#endif /* JKRSTDHEAP_H */
|
||||
#endif /* JKRSTDHEAP_H */
|
||||
|
||||
@@ -212,7 +212,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
T& operator*() { return *this->getObject(); }
|
||||
T* operator*() { return this->getObject(); }
|
||||
|
||||
T* operator->() { return this->getObject(); }
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ u32 ARGetDMAStatus(void);
|
||||
void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length);
|
||||
u32 ARInit(u32* stack_index_addr, u32 num_entries);
|
||||
u32 ARAlloc(u32 length);
|
||||
u32 ARGetBaseAddress();
|
||||
u32 ARGetSize(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
+16
-6
@@ -4,6 +4,9 @@
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
volatile u16 __DSPRegs[32] : 0xCC005000;
|
||||
volatile u32 __AIRegs[8] : 0xCC006C00;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -47,24 +50,31 @@ typedef struct STRUCT_DSP_TASK {
|
||||
|
||||
} DSPTaskInfo;
|
||||
|
||||
extern DSPTaskInfo* __DSP_tmp_task;
|
||||
extern DSPTaskInfo* __DSP_last_task;
|
||||
extern DSPTaskInfo* __DSP_first_task;
|
||||
extern DSPTaskInfo* __DSP_curr_task;
|
||||
|
||||
u32 DSPCheckMailToDSP();
|
||||
u32 DSPCheckMailFromDSP();
|
||||
u32 DSPReadMailFromDSP();
|
||||
void DSPSendMailToDSP(u32 mail);
|
||||
void DSPAssertInt();
|
||||
void DSPInit();
|
||||
void DSPReset();
|
||||
void DSPHalt();
|
||||
void DSPSendMailToDSP(u32 mail);
|
||||
u32 DSPCheckMailToDSP();
|
||||
u32 DSPCheckMailFromDSP();
|
||||
u32 DSPGetDMAStatus();
|
||||
|
||||
DSPTaskInfo* DSPAddTask(DSPTaskInfo* task);
|
||||
|
||||
void __DSP_exec_task(DSPTaskInfo* curr, DSPTaskInfo* next);
|
||||
void __DSP_boot_task(DSPTaskInfo* task);
|
||||
void __DSP_remove_task(DSPTaskInfo* task);
|
||||
void __DSP_insert_task(DSPTaskInfo* task);
|
||||
void __DSP_add_task(DSPTaskInfo* task);
|
||||
void __DSP_remove_task(DSPTaskInfo* task);
|
||||
void __DSP_debug_printf(const char* fmt, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _DOLPHIN_DSP
|
||||
#endif // _DOLPHIN_DSP
|
||||
|
||||
@@ -3,11 +3,18 @@
|
||||
// Translation Unit: JASBank.cpp
|
||||
//
|
||||
|
||||
#include "JASBank.h"
|
||||
#include "JSystem/JAudio/JASBank.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 80284548-8028455C .text getCurrentHeap__Q28JASystem5TBankFv */
|
||||
void JASystem::TBank::getCurrentHeap() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
JKRHeap* JASystem::TBank::sCurrentHeap;
|
||||
|
||||
/* 80284548-8028455C .text getCurrentHeap__Q28JASystem5TBankFv */
|
||||
JKRHeap* JASystem::TBank::getCurrentHeap() {
|
||||
/* Nonmatching */
|
||||
if (sCurrentHeap) {
|
||||
return sCurrentHeap;
|
||||
}
|
||||
return JASDram;
|
||||
}
|
||||
|
||||
+129
-15
@@ -3,46 +3,160 @@
|
||||
// Translation Unit: JASCalc.cpp
|
||||
//
|
||||
|
||||
#include "JASCalc.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/math.h"
|
||||
|
||||
f32* JASystem::Calc::JASC_SINTABLE;
|
||||
f32* JASystem::Calc::JASC_DOL2TABLE;
|
||||
|
||||
/* 8027A804-8027A9C8 .text initSinfT__Q28JASystem4CalcFv */
|
||||
void JASystem::Calc::initSinfT() {
|
||||
/* Nonmatching */
|
||||
JASC_SINTABLE = new (JASDram, 0) f32[257];
|
||||
JUT_ASSERT(49, JASC_SINTABLE != 0);
|
||||
JASC_DOL2TABLE = new (JASDram, 0) f32[257];
|
||||
JUT_ASSERT(51, JASC_DOL2TABLE != 0);
|
||||
for (u32 i = 0; i < 257; i++) {
|
||||
JASC_SINTABLE[i] = sin((M_PI / 2) * i / 256.0f);
|
||||
}
|
||||
for (u32 i = 0; i < 257; i++) {
|
||||
JASC_DOL2TABLE[i] = sin((M_PI / 2) * (0.32612f + 0.34776f * i / 256.0f));
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027A9C8-8027A9F4 .text sinfT__Q28JASystem4CalcFf */
|
||||
void JASystem::Calc::sinfT(float) {
|
||||
/* Nonmatching */
|
||||
f32 JASystem::Calc::sinfT(f32 param_1) {
|
||||
return JASC_SINTABLE[s32(param_1 * 256.0f)];
|
||||
}
|
||||
|
||||
/* 8027A9F4-8027AA20 .text sinfDolby2__Q28JASystem4CalcFf */
|
||||
void JASystem::Calc::sinfDolby2(float) {
|
||||
/* Nonmatching */
|
||||
f32 JASystem::Calc::sinfDolby2(f32 param_1) {
|
||||
return JASC_DOL2TABLE[s32(param_1 * 256.0f)];
|
||||
}
|
||||
|
||||
/* 8027AA20-8027AA50 .text imixcopy__Q28JASystem4CalcFPCsPCsPsl */
|
||||
void JASystem::Calc::imixcopy(const short*, const short*, short*, long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Calc::imixcopy(const s16* s1, const s16* s2, s16* dst, s32 n) {
|
||||
for (; n > 0; n--) {
|
||||
*dst++ = *s1++;
|
||||
*dst++ = *s2++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027AA50-8027AB68 .text bcopyfast__Q28JASystem4CalcFPCUlPUlUl */
|
||||
void JASystem::Calc::bcopyfast(const unsigned long*, unsigned long*, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Calc::bcopyfast(const u32* src, u32* dest, u32 size) {
|
||||
JUT_ASSERT(280, (reinterpret_cast<u32>(src) & 0x03) == 0);
|
||||
JUT_ASSERT(281, (reinterpret_cast<u32>(dest) & 0x03) == 0);
|
||||
JUT_ASSERT(282, (size & 0x0f) == 0);
|
||||
for (size /= 16; size; size--) {
|
||||
u32 val1 = *src++;
|
||||
u32 val2 = *src++;
|
||||
u32 val3 = *src++;
|
||||
u32 val4 = *src++;
|
||||
*dest++ = val1;
|
||||
*dest++ = val2;
|
||||
*dest++ = val3;
|
||||
*dest++ = val4;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027AB68-8027AC68 .text bcopy__Q28JASystem4CalcFPCvPvUl */
|
||||
void JASystem::Calc::bcopy(const void*, void*, unsigned long) {
|
||||
void JASystem::Calc::bcopy(const void* src, void* dest, u32 size) {
|
||||
/* Nonmatching */
|
||||
u32 *usrc;
|
||||
u32 *udest;
|
||||
|
||||
u8 *bsrc = (u8 *)src;
|
||||
u8 *bdest = (u8 *)dest;
|
||||
|
||||
u8 endbitsSrc = (reinterpret_cast<u32>(bsrc) & 0x03);
|
||||
u8 enbitsDst = (reinterpret_cast<u32>(bdest) & 0x03);
|
||||
if ((endbitsSrc) == (enbitsDst) && (size & 0x0f) == 0) {
|
||||
bcopyfast((u32*)src, (u32*)dest, size);
|
||||
} else if ((endbitsSrc == enbitsDst) && (size >= 16)) {
|
||||
if (endbitsSrc != 0) {
|
||||
for (endbitsSrc = 4 - endbitsSrc; endbitsSrc != 0; endbitsSrc--) {
|
||||
*bdest++ = (u32)*bsrc++;
|
||||
size--;
|
||||
}
|
||||
}
|
||||
|
||||
udest = (u32 *)bdest;
|
||||
usrc = (u32 *)bsrc;
|
||||
|
||||
for (; size >= 4; size -= 4) {
|
||||
*udest++ = *usrc++;
|
||||
}
|
||||
|
||||
if (size != 0) {
|
||||
bdest = (u8 *)udest;
|
||||
bsrc = (u8 *)usrc;
|
||||
|
||||
for (; size != 0; size--) {
|
||||
*bdest++ = (u32)*bsrc++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (; size != 0; size--) {
|
||||
*bdest++ = (u32)*bsrc++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027AC68-8027AD38 .text bzerofast__Q28JASystem4CalcFPvUl */
|
||||
void JASystem::Calc::bzerofast(void*, unsigned long) {
|
||||
void JASystem::Calc::bzerofast(void* dest, u32 size) {
|
||||
/* Nonmatching */
|
||||
JUT_ASSERT(387, (reinterpret_cast<u32>(dest) & 0x03) == 0);
|
||||
JUT_ASSERT(388, (size & 0x0f) == 0);
|
||||
u32* udest = (u32*)dest;
|
||||
for (size = size / 16; size != 0; size--) {
|
||||
*udest++ = 0;
|
||||
*udest++ = 0;
|
||||
*udest++ = 0;
|
||||
*udest++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027AD38-8027AE30 .text bzero__Q28JASystem4CalcFPvUl */
|
||||
void JASystem::Calc::bzero(void*, unsigned long) {
|
||||
void JASystem::Calc::bzero(void* dest, u32 size) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
u32 *udest;
|
||||
u8 *bdest = (u8 *)dest;
|
||||
if ((size & 0x1f) == 0 && (reinterpret_cast<u32>(dest) & 0x1f) == 0) {
|
||||
DCZeroRange(dest, size);
|
||||
return;
|
||||
}
|
||||
|
||||
u8 alignedbitsDst = reinterpret_cast<u32>(bdest) & 0x3;
|
||||
|
||||
if ((size & 0xf) == 0 && alignedbitsDst == 0) {
|
||||
bzerofast(dest, size);
|
||||
return;
|
||||
}
|
||||
|
||||
if (size >= 16) {
|
||||
if (alignedbitsDst != 0) {
|
||||
for (alignedbitsDst = 4 - alignedbitsDst; alignedbitsDst != 0; alignedbitsDst--) {
|
||||
*bdest++ = 0;
|
||||
size--;
|
||||
}
|
||||
}
|
||||
|
||||
udest = (u32 *)bdest;
|
||||
for (; size >= 4; size -= 4) {
|
||||
*udest++ = 0;
|
||||
}
|
||||
|
||||
if (size != 0) {
|
||||
bdest = (u8 *)udest;
|
||||
for (; size != 0; size--) {
|
||||
*bdest++ = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (; size != 0; size--) {
|
||||
*bdest++ = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,156 +3,340 @@
|
||||
// Translation Unit: JASDSPInterface.cpp
|
||||
//
|
||||
|
||||
#include "JASDSPInterface.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASDSPInterface.h"
|
||||
#include "JSystem/JAudio/JASCalc.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JAudio/dspproc.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
|
||||
JASystem::DSPInterface::DSPBuffer* JASystem::DSPInterface::CH_BUF;
|
||||
JASystem::DSPInterface::FXBuffer* JASystem::DSPInterface::FX_BUF;
|
||||
f32 JASystem::DSPInterface::sDSPVolume;
|
||||
|
||||
/* 8028A10C-8028A130 .text setDSPMixerLevel__Q28JASystem12DSPInterfaceFf */
|
||||
void JASystem::DSPInterface::setDSPMixerLevel(float) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::setDSPMixerLevel(f32 param_1) {
|
||||
sDSPVolume = param_1;
|
||||
DsetMixerLevel(param_1);
|
||||
}
|
||||
|
||||
/* 8028A130-8028A144 .text getDSPHandle__Q28JASystem12DSPInterfaceFUc */
|
||||
void JASystem::DSPInterface::getDSPHandle(unsigned char) {
|
||||
/* Nonmatching */
|
||||
JASystem::DSPInterface::DSPBuffer* JASystem::DSPInterface::getDSPHandle(u8 param_1) {
|
||||
return CH_BUF + param_1;
|
||||
}
|
||||
|
||||
/* 8028A144-8028A168 .text setFilterTable__Q28JASystem12DSPInterfaceFPsPsUl */
|
||||
void JASystem::DSPInterface::setFilterTable(short*, short*, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::setFilterTable(s16* dest, s16* src, u32 size) {
|
||||
for (int i = 0; i < size; i++) {
|
||||
*dest++ = *src++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8028A168-8028A19C .text flushBuffer__Q28JASystem12DSPInterfaceFv */
|
||||
void JASystem::DSPInterface::flushBuffer() {
|
||||
/* Nonmatching */
|
||||
DCFlushRange(CH_BUF, sizeof(DSPBuffer) * 64);
|
||||
DCFlushRange(FX_BUF, sizeof(FXBuffer) * 4);
|
||||
}
|
||||
|
||||
/* 8028A19C-8028A1C4 .text invalChannelAll__Q28JASystem12DSPInterfaceFv */
|
||||
void JASystem::DSPInterface::invalChannelAll() {
|
||||
/* Nonmatching */
|
||||
DCInvalidateRange(CH_BUF, sizeof(DSPBuffer) * 64);
|
||||
}
|
||||
|
||||
/* 8028A1C4-8028A240 .text clearBuffer__Q28JASystem12DSPInterfaceFv */
|
||||
void JASystem::DSPInterface::clearBuffer() {
|
||||
/* Nonmatching */
|
||||
for (u32 i = 0; i < 64; i++) {
|
||||
Calc::bzero(CH_BUF + i, sizeof(DSPBuffer));
|
||||
}
|
||||
for (u32 i = 0; i < 4; i++) {
|
||||
Calc::bzero(FX_BUF + i, sizeof(FXBuffer));
|
||||
}
|
||||
}
|
||||
|
||||
u32 JASystem::DSPInterface::DOLBY2_DELAY_BUF[600];
|
||||
|
||||
/* 8028A240-8028A28C .text setupBuffer__Q28JASystem12DSPInterfaceFv */
|
||||
void JASystem::DSPInterface::setupBuffer() {
|
||||
/* Nonmatching */
|
||||
DsetupTable(64, (u32)CH_BUF, (u32)&DSPRES_FILTER, (u32)&DSPADPCM_FILTER, (u32)FX_BUF);
|
||||
DsetDolbyDelay((u32)&DOLBY2_DELAY_BUF, 10);
|
||||
}
|
||||
|
||||
/* 8028A28C-8028A368 .text initBuffer__Q28JASystem12DSPInterfaceFv */
|
||||
void JASystem::DSPInterface::initBuffer() {
|
||||
/* Nonmatching */
|
||||
CH_BUF = new(JASDram, 0x20) DSPBuffer[64];
|
||||
FX_BUF = new(JASDram, 0x20) FXBuffer[4];
|
||||
JUT_ASSERT(163, (CH_BUF != 0) && (FX_BUF != 0));
|
||||
for (u8 i = 0; i < 4; i++) {
|
||||
FX_BUF[i].setFXLine(NULL, NULL);
|
||||
}
|
||||
clearBuffer();
|
||||
setupBuffer();
|
||||
flushBuffer();
|
||||
}
|
||||
|
||||
/* 8028A368-8028A378 .text getFXHandle__Q28JASystem12DSPInterfaceFUc */
|
||||
void JASystem::DSPInterface::getFXHandle(unsigned char) {
|
||||
/* Nonmatching */
|
||||
JASystem::DSPInterface::FXBuffer* JASystem::DSPInterface::getFXHandle(u8 param_1) {
|
||||
return FX_BUF + param_1;
|
||||
}
|
||||
|
||||
u16 JASystem::DSPInterface::SEND_TABLE[] = {
|
||||
0x0D00, 0x0D60, 0x0DC0, 0x0E20,
|
||||
0x0E80, 0x0EE0, 0x0CA0, 0x0F40,
|
||||
0x0FA0, 0x0B00, 0x09A0, 0x0000,
|
||||
};
|
||||
|
||||
/* 8028A378-8028A528 .text setFXLine__Q38JASystem12DSPInterface8FXBufferFPsPQ38JASystem12DSPInterface13FxlineConfig_ */
|
||||
void JASystem::DSPInterface::FXBuffer::setFXLine(short*, JASystem::DSPInterface::FxlineConfig_*) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::DSPInterface::FXBuffer::setFXLine(s16* buffer, JASystem::DSPInterface::FxlineConfig_* config) {
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
field_0x0 = 0;
|
||||
if (config) {
|
||||
field_0xa = config->field_0x4;
|
||||
field_0x8 = SEND_TABLE[config->field_0x2];
|
||||
field_0xe = config->field_0x8;
|
||||
field_0xc = SEND_TABLE[config->field_0x6];
|
||||
field_0x2 = config->field_0xc;
|
||||
OSReport("FX LINE Buffer %x/ SIZE %d\n", buffer, config->field_0xc);
|
||||
setFilterTable(field_0x10, config->field_0x10, 8);
|
||||
}
|
||||
if (buffer && config) {
|
||||
u32 bufsize = config->field_0xc * 0xa0;
|
||||
field_0x4 = buffer;
|
||||
Calc::bzero(buffer, bufsize);
|
||||
JUT_ASSERT(219, (reinterpret_cast<u32>(buffer) & 0x1f) == 0);
|
||||
JUT_ASSERT(220, (bufsize & 0x1f) == 0);
|
||||
DCFlushRange(buffer, bufsize);
|
||||
} else if (!config || buffer) {
|
||||
field_0x4 = buffer;
|
||||
}
|
||||
if (field_0x4) {
|
||||
field_0x0 = config->field_0x0;
|
||||
} else {
|
||||
field_0x0 = 0;
|
||||
}
|
||||
DCFlushRange(this, 0x20);
|
||||
OSRestoreInterrupts(enable);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8028A528-8028A574 .text allocInit__Q38JASystem12DSPInterface9DSPBufferFv */
|
||||
void JASystem::DSPInterface::DSPBuffer::allocInit() {
|
||||
/* Nonmatching */
|
||||
field_0xc = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x10a = 0;
|
||||
field_0x0 = 0;
|
||||
field_0x58 = 0;
|
||||
initFilter();
|
||||
flushChannel();
|
||||
}
|
||||
|
||||
/* 8028A574-8028A5D8 .text playStart__Q38JASystem12DSPInterface9DSPBufferFv */
|
||||
void JASystem::DSPInterface::DSPBuffer::playStart() {
|
||||
/* Nonmatching */
|
||||
field_0x10c = 0;
|
||||
field_0x60 = 0;
|
||||
field_0x8 = 1;
|
||||
field_0x66 = 1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
field_0x78[i] = 0;
|
||||
field_0xa8[i] = 0;
|
||||
}
|
||||
for (int i = 0; i < 20; i++) {
|
||||
field_0x80[i] = 0;
|
||||
}
|
||||
field_0x0 = 1;
|
||||
}
|
||||
|
||||
u16 JASystem::DSPInterface::JAS_DSP_PREFIX = 0xF355;
|
||||
|
||||
/* 8028A5D8-8028A6FC .text setWaveInfo__Q38JASystem12DSPInterface9DSPBufferFPQ38JASystem6Driver5Wave_UlUl */
|
||||
void JASystem::DSPInterface::DSPBuffer::setWaveInfo(JASystem::Driver::Wave_*, unsigned long, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setWaveInfo(JASystem::Driver::Wave_* param_1, u32 param_2, u32 param_3) {
|
||||
static u8 COMP_BLOCKSAMPLES[8] = {
|
||||
0x10, 0x10, 0x01, 0x01, 0x01, 0x10, 0x10, 0x01,
|
||||
};
|
||||
static u8 COMP_BLOCKBYTES[8] = {
|
||||
0x09, 0x05, 0x08, 0x10, 0x01, 0x01, 0x01, 0x01,
|
||||
};
|
||||
|
||||
field_0x118 = param_2;
|
||||
field_0x64 = COMP_BLOCKSAMPLES[param_1->field_0x1];
|
||||
field_0x100 = COMP_BLOCKBYTES[param_1->field_0x1];
|
||||
field_0x68 = 0;
|
||||
if (field_0x100 < 4) {
|
||||
return;
|
||||
}
|
||||
field_0x11c = param_1->field_0x1c;
|
||||
field_0x102 = param_1->field_0x10;
|
||||
if (field_0x102) {
|
||||
if (param_3 == 1) {
|
||||
param_3 = param_1->field_0x14;
|
||||
}
|
||||
field_0x110 = param_1->field_0x14;
|
||||
field_0x114 = param_1->field_0x18;
|
||||
field_0x104 = param_1->field_0x20;
|
||||
field_0x106 = param_1->field_0x22;
|
||||
} else {
|
||||
field_0x114 = field_0x11c;
|
||||
}
|
||||
if (param_3 && field_0x114 > param_3) {
|
||||
switch (param_1->field_0x1) {
|
||||
case 0:
|
||||
case 1:
|
||||
field_0x68 = param_3;
|
||||
field_0x118 += (param_3 * field_0x100 >> 4);
|
||||
field_0x110 -= param_3;
|
||||
field_0x114 -= param_3;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
field_0x68 = param_3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 16; i++) {
|
||||
field_0xb0[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8028A6FC-8028A714 .text setOscInfo__Q38JASystem12DSPInterface9DSPBufferFUl */
|
||||
void JASystem::DSPInterface::DSPBuffer::setOscInfo(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setOscInfo(u32 param_1) {
|
||||
field_0x118 = 0;
|
||||
field_0x64 = 16;
|
||||
field_0x100 = param_1;
|
||||
}
|
||||
|
||||
/* 8028A714-8028A740 .text initAutoMixer__Q38JASystem12DSPInterface9DSPBufferFv */
|
||||
void JASystem::DSPInterface::DSPBuffer::initAutoMixer() {
|
||||
/* Nonmatching */
|
||||
if (field_0x58) {
|
||||
field_0x54 = field_0x56;
|
||||
return;
|
||||
}
|
||||
field_0x54 = 0;
|
||||
field_0x58 = 1;
|
||||
}
|
||||
|
||||
/* 8028A740-8028A764 .text setAutoMixer__Q38JASystem12DSPInterface9DSPBufferFUsUcUcUcUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setAutoMixer(unsigned short, unsigned char, unsigned char, unsigned char, unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setAutoMixer(u16 param_1, u8 param_2, u8 param_3, u8 param_4, u8 param_5) {
|
||||
field_0x50 = param_2 << 8 | param_3;
|
||||
field_0x52 = param_4 << 8;
|
||||
field_0x56 = param_1;
|
||||
field_0x58 = 1;
|
||||
}
|
||||
|
||||
/* 8028A764-8028A77C .text setPitch__Q38JASystem12DSPInterface9DSPBufferFUs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setPitch(unsigned short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setPitch(u16 param_1) {
|
||||
if (param_1 >= 0x7fff) {
|
||||
param_1 = 0x7fff;
|
||||
}
|
||||
field_0x4 = param_1;
|
||||
}
|
||||
|
||||
/* 8028A77C-8028A788 .text setMixerInitDelayMax__Q38JASystem12DSPInterface9DSPBufferFUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerInitDelayMax(unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerInitDelayMax(u8 param_1) {
|
||||
field_0xe = param_1;
|
||||
}
|
||||
|
||||
/* 8028A788-8028A7AC .text setMixerInitVolume__Q38JASystem12DSPInterface9DSPBufferFUcsUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerInitVolume(unsigned char, short, unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerInitVolume(u8 param_1, s16 param_2, u8 param_3) {
|
||||
u16* tmp = field_0x10[param_1];
|
||||
tmp[2] = param_2;
|
||||
tmp[1] = param_2;
|
||||
tmp[3] = param_3 << 8 | param_3;
|
||||
}
|
||||
|
||||
/* 8028A7AC-8028A7DC .text setMixerVolume__Q38JASystem12DSPInterface9DSPBufferFUcsUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerVolume(unsigned char, short, unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerVolume(u8 param_1, s16 param_2, u8 param_3) {
|
||||
if (field_0x10a) {
|
||||
return;
|
||||
}
|
||||
u16* tmp = field_0x10[param_1];
|
||||
tmp[1] = param_2;
|
||||
tmp[3] = param_3 << 8 | tmp[3] & 0xff;
|
||||
}
|
||||
|
||||
/* 8028A7DC-8028A7F8 .text setMixerVolumeOnly__Q38JASystem12DSPInterface9DSPBufferFUcs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerVolumeOnly(unsigned char, short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setMixerVolumeOnly(u8 param_1, s16 param_2) {
|
||||
if (field_0x10a) {
|
||||
return;
|
||||
}
|
||||
field_0x10[param_1][1] = param_2;
|
||||
}
|
||||
|
||||
/* 8028A7F8-8028A804 .text setPauseFlag__Q38JASystem12DSPInterface9DSPBufferFUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setPauseFlag(unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setPauseFlag(u8 param_1) {
|
||||
field_0xc = param_1;
|
||||
}
|
||||
|
||||
/* 8028A804-8028A828 .text flushChannel__Q38JASystem12DSPInterface9DSPBufferFv */
|
||||
void JASystem::DSPInterface::DSPBuffer::flushChannel() {
|
||||
/* Nonmatching */
|
||||
DCFlushRange(this, sizeof(*this));
|
||||
}
|
||||
|
||||
/* 8028A828-8028A884 .text initFilter__Q38JASystem12DSPInterface9DSPBufferFv */
|
||||
void JASystem::DSPInterface::DSPBuffer::initFilter() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x120[i] = 0;
|
||||
}
|
||||
field_0x120[0] = 0x7fff;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
field_0x148[i] = 0;
|
||||
}
|
||||
field_0x148[0] = 0x7fff;
|
||||
field_0x150 = 0;
|
||||
}
|
||||
|
||||
/* 8028A884-8028A8BC .text setFilterMode__Q38JASystem12DSPInterface9DSPBufferFUs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setFilterMode(unsigned short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setFilterMode(u16 param_1) {
|
||||
u8 r30 = param_1 & 0x20;
|
||||
u8 r31 = param_1 & 0x1f;
|
||||
if (r30) {
|
||||
if (r31 > 0x14) {
|
||||
r31 = 0x14;
|
||||
}
|
||||
} else {
|
||||
if (r31 > 0x18) {
|
||||
r31 = 0x18;
|
||||
}
|
||||
}
|
||||
field_0x108 = r30 + r31;
|
||||
}
|
||||
|
||||
/* 8028A8BC-8028A8E4 .text setIIRFilterParam__Q38JASystem12DSPInterface9DSPBufferFPs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setIIRFilterParam(short*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setIIRFilterParam(s16* param_1) {
|
||||
setFilterTable(field_0x148, param_1, 4);
|
||||
}
|
||||
|
||||
/* 8028A8E4-8028A90C .text setFIR8FilterParam__Q38JASystem12DSPInterface9DSPBufferFPs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setFIR8FilterParam(short*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setFIR8FilterParam(s16* param_1) {
|
||||
setFilterTable(field_0x120, param_1, 8);
|
||||
}
|
||||
|
||||
/* 8028A90C-8028A914 .text setDistFilter__Q38JASystem12DSPInterface9DSPBufferFs */
|
||||
void JASystem::DSPInterface::DSPBuffer::setDistFilter(short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setDistFilter(s16 param_1) {
|
||||
field_0x150 = param_1;
|
||||
}
|
||||
|
||||
/* 8028A914-8028A934 .text setBusConnect__Q38JASystem12DSPInterface9DSPBufferFUcUc */
|
||||
void JASystem::DSPInterface::DSPBuffer::setBusConnect(unsigned char, unsigned char) {
|
||||
/* Nonmatching */
|
||||
void JASystem::DSPInterface::DSPBuffer::setBusConnect(u8 param_1, u8 param_2) {
|
||||
static const u16 connect_table[12] = {
|
||||
0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80,
|
||||
0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0,
|
||||
};
|
||||
u16* tmp = field_0x10[param_1];
|
||||
tmp[0] = connect_table[param_2];
|
||||
}
|
||||
|
||||
/* 8028A934-8028A978 .text DSP_CreateMap2__FUl */
|
||||
void DSP_CreateMap2(unsigned long) {
|
||||
/* Nonmatching */
|
||||
u16 DSP_CreateMap2(u32 param_1) {
|
||||
u16 var1 = 0;
|
||||
JASystem::DSPInterface::DSPBuffer* buffer = &JASystem::DSPInterface::CH_BUF[param_1 << 4];
|
||||
for (int i = 0; i < 16; i++) {
|
||||
var1 <<= 1;
|
||||
if (buffer->field_0x0) {
|
||||
var1 |= 1;
|
||||
}
|
||||
buffer++;
|
||||
}
|
||||
return var1;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,76 +3,243 @@
|
||||
// Translation Unit: JASHeapCtrl.cpp
|
||||
//
|
||||
|
||||
#include "JASHeapCtrl.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASHeapCtrl.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
/* 8027CC14-8027CC88 .text __ct__Q38JASystem6Kernel5THeapFPQ38JASystem6Kernel9TDisposer */
|
||||
JASystem::Kernel::THeap::THeap(JASystem::Kernel::TDisposer*) {
|
||||
/* Nonmatching */
|
||||
JASystem::Kernel::THeap::THeap(TDisposer* disposer) : mTree(this) {
|
||||
mDisposer = disposer;
|
||||
mType = Type1;
|
||||
mBase = NULL;
|
||||
mSize = 0;
|
||||
field_0x44 = NULL;
|
||||
OSInitMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 8027CC88-8027CD38 .text initRootHeap__Q38JASystem6Kernel5THeapFPvUlQ48JASystem6Kernel5THeap4Type */
|
||||
void JASystem::Kernel::THeap::initRootHeap(void*, unsigned long, JASystem::Kernel::THeap::Type) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Kernel::THeap::initRootHeap(void* ptr, u32 size, Type type) {
|
||||
JUT_ASSERT(92, ! isAllocated());
|
||||
OSLockMutex(&mMutex);
|
||||
mBase = (u8*)OSRoundUpPtr(ptr, 0x20);
|
||||
field_0x44 = NULL;
|
||||
mSize = size - (u32(mBase) - u32(ptr));
|
||||
mType = type;
|
||||
OSUnlockMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 8027CD38-8027CF68 .text alloc__Q38JASystem6Kernel5THeapFPQ38JASystem6Kernel5THeapUl */
|
||||
void JASystem::Kernel::THeap::alloc(JASystem::Kernel::THeap*, unsigned long) {
|
||||
/* Nonmatching */
|
||||
bool JASystem::Kernel::THeap::alloc(THeap* mother, u32 param_2) {
|
||||
JUT_ASSERT(118, mother != 0);
|
||||
OSLockMutex(&mMutex);
|
||||
if (isAllocated()) {
|
||||
OSReport("[JASHeap::alloc] すでにヒープは確保されています。初期化してからにしてください。\n");
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
if (!mother->isAllocated()) {
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
param_2 = OSRoundUp32B(param_2);
|
||||
u32 local_28 = mother->getCurOffset();
|
||||
u32 local_2c = mother->getTailOffset();
|
||||
if (local_28 + param_2 <= local_2c) {
|
||||
mother->insertChild(this, mother->getTailHeap(), mother->mBase + local_28, param_2, false);
|
||||
OSUnlockMutex(&mMutex);
|
||||
return true;
|
||||
}
|
||||
s32 r27 = -1;
|
||||
u8* r29 = mother->mBase;
|
||||
bool local_43 = false;
|
||||
THeap* local_30 = NULL;
|
||||
void* local_34;
|
||||
for (JSUTreeIterator<THeap> it = mother->mTree.getFirstChild(); it != mother->mTree.getEndChild(); it++) {
|
||||
if (r29 >= mother->mBase + local_2c) {
|
||||
break;
|
||||
}
|
||||
u32 local_3c = u32(it->mBase) - u32(r29);
|
||||
if (local_3c >= param_2 && local_3c < r27) {
|
||||
local_30 = *it;
|
||||
local_34 = r29;
|
||||
r27 = local_3c;
|
||||
local_43 = true;
|
||||
}
|
||||
u32 r25 = it->mSize;
|
||||
r29 = (u8*)it->mBase + r25;
|
||||
}
|
||||
if (r29 != mother->mBase && r29 < mother->mBase + local_2c) {
|
||||
u32 local_40 = mother->mBase + mother->mSize - r29;
|
||||
if (local_40 >= param_2 && local_40 < r27) {
|
||||
local_30 = NULL;
|
||||
local_34 = r29;
|
||||
r27 = local_40;
|
||||
local_43 = true;
|
||||
}
|
||||
}
|
||||
if (!local_43) {
|
||||
OSReport("[JASHeap::alloc] マザーメモリが足りないので確保できません。\n");
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
mother->insertChild(this, local_30, local_34, param_2, false);
|
||||
OSUnlockMutex(&mMutex);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027CF68-8027D088 .text free__Q38JASystem6Kernel5THeapFv */
|
||||
void JASystem::Kernel::THeap::free() {
|
||||
/* Nonmatching */
|
||||
bool JASystem::Kernel::THeap::free() {
|
||||
OSLockMutex(&mMutex);
|
||||
if (!isAllocated()) {
|
||||
OSUnlockMutex(&mMutex);
|
||||
return false;
|
||||
}
|
||||
JSUTreeIterator<THeap> stack_20;
|
||||
for (JSUTreeIterator<THeap> it(mTree.getFirstChild()); it != mTree.getEndChild(); it = stack_20) {
|
||||
stack_20 = it;
|
||||
stack_20++;
|
||||
it->free();
|
||||
}
|
||||
JSUTree<THeap>* parentTree = mTree.getParent();
|
||||
if (parentTree) {
|
||||
THeap* parentHeap = parentTree->getObject();
|
||||
if (parentHeap->field_0x44 == this) {
|
||||
JSUTreeIterator<THeap> stack_28(mTree.getPrevChild());
|
||||
if (stack_28 != mTree.getEndChild()) {
|
||||
parentHeap->field_0x44 = *stack_28;
|
||||
} else {
|
||||
parentHeap->field_0x44 = NULL;
|
||||
}
|
||||
}
|
||||
parentTree->removeChild(&mTree);
|
||||
}
|
||||
mBase = NULL;
|
||||
field_0x44 = NULL;
|
||||
mSize = 0;
|
||||
if (mDisposer) {
|
||||
mDisposer->onDispose();
|
||||
}
|
||||
OSUnlockMutex(&mMutex);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void dummy(JASystem::Kernel::TDisposer* disposer) {
|
||||
OSReport("------------------------------------\n");
|
||||
OSReport("level >= 0 && level < 7");
|
||||
OSReport("%s Heap %08x [Addr %8x , Max %8x] %c\n");
|
||||
}
|
||||
|
||||
/* 8027D088-8027D1FC .text insertChild__Q38JASystem6Kernel5THeapFPQ38JASystem6Kernel5THeapPQ38JASystem6Kernel5THeapPvUlb */
|
||||
void JASystem::Kernel::THeap::insertChild(JASystem::Kernel::THeap*, JASystem::Kernel::THeap*, void*, unsigned long, bool) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Kernel::THeap::insertChild(THeap* heap, THeap* next, void* param_3, u32 param_4, bool param_5) {
|
||||
JUT_ASSERT(537, heap != 0);
|
||||
JUT_ASSERT(538, next == 0 || &mTree == next->mTree.getParent());
|
||||
OSLockMutex(&mMutex);
|
||||
if (!param_5) {
|
||||
JSUTreeIterator<THeap> it;
|
||||
if (!next) {
|
||||
it = mTree.getLastChild();
|
||||
} else {
|
||||
it = next->mTree.getPrevChild();
|
||||
}
|
||||
THeap* r24 = it != mTree.getEndChild() ? it.getObject() : NULL;
|
||||
if (field_0x44 == r24) {
|
||||
field_0x44 = heap;
|
||||
}
|
||||
}
|
||||
heap->mBase = (u8*)param_3;
|
||||
heap->mSize = param_4;
|
||||
heap->field_0x44 = NULL;
|
||||
heap->mType = mType;
|
||||
mTree.insertChild(&next->mTree, &heap->mTree);
|
||||
OSUnlockMutex(&mMutex);
|
||||
}
|
||||
|
||||
/* 8027D1FC-8027D280 .text getTailHeap__Q38JASystem6Kernel5THeapFv */
|
||||
void JASystem::Kernel::THeap::getTailHeap() {
|
||||
/* Nonmatching */
|
||||
JASystem::Kernel::THeap* JASystem::Kernel::THeap::getTailHeap() {
|
||||
JSUTreeIterator<THeap> it;
|
||||
OSLockMutex(&mMutex);
|
||||
if (!field_0x44) {
|
||||
it = mTree.getFirstChild();
|
||||
} else {
|
||||
it = field_0x44->mTree.getNextChild();
|
||||
}
|
||||
OSUnlockMutex(&mMutex);
|
||||
if (it == mTree.getEndChild()) {
|
||||
return NULL;
|
||||
}
|
||||
return it.getObject();
|
||||
}
|
||||
|
||||
/* 8027D280-8027D2E8 .text getTailOffset__Q38JASystem6Kernel5THeapFv */
|
||||
void JASystem::Kernel::THeap::getTailOffset() {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::Kernel::THeap::getTailOffset() {
|
||||
OSLockMutex(&mMutex);
|
||||
THeap* heap = getTailHeap();
|
||||
u32 offset = !heap ? mSize : heap->mBase - mBase;
|
||||
OSUnlockMutex(&mMutex);
|
||||
return offset;
|
||||
}
|
||||
|
||||
/* 8027D2E8-8027D354 .text getCurOffset__Q38JASystem6Kernel5THeapFv */
|
||||
void JASystem::Kernel::THeap::getCurOffset() {
|
||||
/* Nonmatching */
|
||||
u32 JASystem::Kernel::THeap::getCurOffset() {
|
||||
OSLockMutex(&mMutex);
|
||||
u32 offset = !field_0x44 ? 0 : field_0x44->mBase + field_0x44->mSize - mBase;
|
||||
OSUnlockMutex(&mMutex);
|
||||
return offset;
|
||||
}
|
||||
|
||||
/* 8027D354-8027D370 .text __ct__Q38JASystem6Kernel10TSolidHeapFv */
|
||||
JASystem::Kernel::TSolidHeap::TSolidHeap() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xc = 0;
|
||||
field_0x10 = 0;
|
||||
}
|
||||
|
||||
/* 8027D370-8027D40C .text alloc__Q38JASystem6Kernel10TSolidHeapFl */
|
||||
void JASystem::Kernel::TSolidHeap::alloc(long) {
|
||||
int JASystem::Kernel::TSolidHeap::alloc(s32 size) {
|
||||
/* Nonmatching */
|
||||
u32 tmp1 = OSRoundUp32B(size);
|
||||
if (field_0x0 == 0) {
|
||||
OSReport("[Nas_HeapAlloc] ヒープが取得できません(ヒープ取得元存在せず)。\n");
|
||||
return 0;
|
||||
}
|
||||
u32 tmp2 = field_0x4;
|
||||
if (tmp2 + tmp1 <= field_0x0 + field_0x8) {
|
||||
field_0x4 = tmp2 + tmp1;
|
||||
} else {
|
||||
OSReport("[Nas_HeapAlloc] ヒープが取得できません(ヒープの取得元の残りサイズ不足)。\n");
|
||||
return 0;
|
||||
}
|
||||
field_0xc++;
|
||||
field_0x10 = tmp2;
|
||||
return tmp2;
|
||||
}
|
||||
|
||||
/* 8027D40C-8027D424 .text freeAll__Q38JASystem6Kernel10TSolidHeapFv */
|
||||
void JASystem::Kernel::TSolidHeap::freeAll() {
|
||||
/* Nonmatching */
|
||||
field_0x4 = field_0x0;
|
||||
field_0xc = 0;
|
||||
field_0x10 = 0;
|
||||
}
|
||||
|
||||
/* 8027D424-8027D4AC .text init__Q38JASystem6Kernel10TSolidHeapFPUcl */
|
||||
void JASystem::Kernel::TSolidHeap::init(unsigned char*, long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Kernel::TSolidHeap::init(u8* param_1, s32 param_2) {
|
||||
field_0xc = 0;
|
||||
if (!param_1) {
|
||||
OSReport("[Nas_HeapInit] アドレス0からヒープを初期化しようとしています。\n");
|
||||
field_0x8 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x10 = 0;
|
||||
} else {
|
||||
field_0x0 = OSRoundUp32B(param_1);
|
||||
field_0x4 = field_0x0;
|
||||
field_0x8 = param_2 - (field_0x0 - u32(param_1));
|
||||
field_0x10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8027D4AC-8027D4C4 .text getRemain__Q38JASystem6Kernel10TSolidHeapFv */
|
||||
void JASystem::Kernel::TSolidHeap::getRemain() {
|
||||
/* Nonmatching */
|
||||
int JASystem::Kernel::TSolidHeap::getRemain() {
|
||||
return field_0x8 - (field_0x4 - field_0x0);
|
||||
}
|
||||
|
||||
/* 8027D4C4-8027D4C8 .text onDispose__Q38JASystem6Kernel9TDisposerFv */
|
||||
void JASystem::Kernel::TDisposer::onDispose() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,31 +3,57 @@
|
||||
// Translation Unit: JASSystemHeap.cpp
|
||||
//
|
||||
|
||||
#include "JASSystemHeap.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASSystemHeap.h"
|
||||
#include "JSystem/JAudio/JASHeapCtrl.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JKernel/JKRStdHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/ar/ar.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
u32 JASystem::Kernel::audioDramSize = 0x000C8000;
|
||||
JKRSolidHeap* JASDram;
|
||||
|
||||
/* 8027DB38-8027DB9C .text sysDramSetup__Q28JASystem6KernelFP12JKRSolidHeap */
|
||||
void JASystem::Kernel::sysDramSetup(JKRSolidHeap*) {
|
||||
void JASystem::Kernel::sysDramSetup(JKRSolidHeap* heap) {
|
||||
/* Nonmatching */
|
||||
if (heap) {
|
||||
JASDram = heap;
|
||||
return;
|
||||
}
|
||||
OSReport("[JASKernel::sysDramSetup] メモリ指定がありませんので、システムからオーディオヒープを取得します。\n");
|
||||
JASDram = JKRSolidHeap::create(audioDramSize, JKRStdHeap::create(audioDramSize + 0x100, NULL, false), false);
|
||||
}
|
||||
|
||||
/* 8027DB9C-8027DC30 .text allocFromSysDram__Q28JASystem6KernelFUl */
|
||||
void JASystem::Kernel::allocFromSysDram(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void* JASystem::Kernel::allocFromSysDram(u32 size) {
|
||||
void* ptr;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
ptr = new (JASDram, 0x20) u8[size];
|
||||
JUT_ASSERT(79, ptr != 0);
|
||||
OSRestoreInterrupts(enable);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
JASystem::Kernel::TSolidHeap JASystem::Kernel::audioAramHeap;
|
||||
u32 JASystem::Kernel::audioAramSize = 0x00400000;
|
||||
int JASystem::Kernel::audioAramTop;
|
||||
int JASystem::Kernel::CARD_SECURITY_BUFFER;
|
||||
|
||||
/* 8027DC30-8027DC84 .text sysAramSetup__Q28JASystem6KernelFUl */
|
||||
void JASystem::Kernel::sysAramSetup(unsigned long) {
|
||||
void JASystem::Kernel::sysAramSetup(u32 param_1) {
|
||||
/* Nonmatching */
|
||||
if (!param_1) {
|
||||
param_1 = audioAramSize;
|
||||
}
|
||||
audioAramTop = ARGetBaseAddress();
|
||||
CARD_SECURITY_BUFFER = 0x40;
|
||||
audioAramHeap.init((u8*)audioAramTop, param_1 - audioAramTop);
|
||||
}
|
||||
|
||||
/* 8027DC84-8027DCDC .text allocFromSysAramFull__Q28JASystem6KernelFPUl */
|
||||
void JASystem::Kernel::allocFromSysAramFull(unsigned long*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::Kernel::allocFromSysAramFull(u32* param_1) {
|
||||
u32 size = audioAramHeap.getRemain();
|
||||
audioAramHeap.alloc(size - 0x20);
|
||||
*param_1 = size - 0x20;
|
||||
}
|
||||
|
||||
/* 8027DD18-8027DD54 .text __dt__Q38JASystem6Kernel10TSolidHeapFv */
|
||||
JASystem::Kernel::TSolidHeap::~TSolidHeap() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -3,36 +3,73 @@
|
||||
// Translation Unit: JASTrackInterrupt.cpp
|
||||
//
|
||||
|
||||
#include "JASTrackInterrupt.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASTrackInterrupt.h"
|
||||
|
||||
/* 80284118-80284158 .text init__Q28JASystem8TIntrMgrFv */
|
||||
void JASystem::TIntrMgr::init() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = 1;
|
||||
field_0x1 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x3 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x8 = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0xc[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80284158-8028417C .text request__Q28JASystem8TIntrMgrFUl */
|
||||
void JASystem::TIntrMgr::request(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TIntrMgr::request(u32 param_1) {
|
||||
if ((field_0x2 & 1 << param_1) == 0) {
|
||||
return;
|
||||
}
|
||||
field_0x1 |= 1 << param_1;
|
||||
}
|
||||
|
||||
/* 8028417C-802841A0 .text setIntr__Q28JASystem8TIntrMgrFUlPv */
|
||||
void JASystem::TIntrMgr::setIntr(unsigned long, void*) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TIntrMgr::setIntr(u32 param_1, void* param_2) {
|
||||
field_0x2 |= 1 << param_1;
|
||||
field_0xc[param_1] = param_2;
|
||||
}
|
||||
|
||||
/* 802841A0-802841B8 .text resetInter__Q28JASystem8TIntrMgrFUl */
|
||||
void JASystem::TIntrMgr::resetInter(unsigned long) {
|
||||
void JASystem::TIntrMgr::resetInter(u32 param_1) {
|
||||
/* Nonmatching */
|
||||
field_0x2 &= ~(1 << param_1);
|
||||
}
|
||||
|
||||
/* 802841B8-80284224 .text checkIntr__Q28JASystem8TIntrMgrFv */
|
||||
void JASystem::TIntrMgr::checkIntr() {
|
||||
/* Nonmatching */
|
||||
void* JASystem::TIntrMgr::checkIntr() {
|
||||
if (field_0x0 == 0) {
|
||||
return NULL;
|
||||
}
|
||||
u32 r4 = field_0x2 & field_0x1;
|
||||
for (u32 i = 0; r4; i++) {
|
||||
if (r4 & 1) {
|
||||
field_0x1 &= ~(1 << i);
|
||||
return field_0xc[i];
|
||||
}
|
||||
r4 >>= 1;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80284224-802842A8 .text timerProcess__Q28JASystem8TIntrMgrFv */
|
||||
void JASystem::TIntrMgr::timerProcess() {
|
||||
/* Nonmatching */
|
||||
if (field_0x4 == 0) {
|
||||
return;
|
||||
}
|
||||
field_0x4--;
|
||||
if (field_0x4 != 0) {
|
||||
return;
|
||||
}
|
||||
request(6);
|
||||
if (field_0x3) {
|
||||
field_0x3--;
|
||||
if (field_0x3) {
|
||||
field_0x4 = field_0x8;
|
||||
}
|
||||
} else {
|
||||
field_0x4 = field_0x8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,31 +3,45 @@
|
||||
// Translation Unit: JASTrackPort.cpp
|
||||
//
|
||||
|
||||
#include "JASTrackPort.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/JASTrackPort.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
const u32 MAX_PORTS = 16;
|
||||
|
||||
/* 802842A8-802842E8 .text init__Q28JASystem10TTrackPortFv */
|
||||
void JASystem::TTrackPort::init() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 16; i++) {
|
||||
field_0x0[i] = 0;
|
||||
field_0x10[i] = 0;
|
||||
field_0x20[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 802842E8-8028437C .text readImport__Q28JASystem10TTrackPortFi */
|
||||
void JASystem::TTrackPort::readImport(int) {
|
||||
/* Nonmatching */
|
||||
u16 JASystem::TTrackPort::readImport(int port_num) {
|
||||
JUT_ASSERT(31, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x0[port_num] = 0;
|
||||
return field_0x20[port_num];
|
||||
}
|
||||
|
||||
/* 8028437C-80284414 .text readExport__Q28JASystem10TTrackPortFi */
|
||||
void JASystem::TTrackPort::readExport(int) {
|
||||
/* Nonmatching */
|
||||
u16 JASystem::TTrackPort::readExport(int port_num) {
|
||||
JUT_ASSERT(38, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x10[port_num] = 0;
|
||||
return field_0x20[port_num];
|
||||
}
|
||||
|
||||
/* 80284414-802844AC .text writeImport__Q28JASystem10TTrackPortFiUs */
|
||||
void JASystem::TTrackPort::writeImport(int, unsigned short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TTrackPort::writeImport(int port_num, u16 value) {
|
||||
JUT_ASSERT(45, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x0[port_num] = 1;
|
||||
field_0x20[port_num] = value;
|
||||
}
|
||||
|
||||
/* 802844AC-80284548 .text writeExport__Q28JASystem10TTrackPortFiUs */
|
||||
void JASystem::TTrackPort::writeExport(int, unsigned short) {
|
||||
/* Nonmatching */
|
||||
void JASystem::TTrackPort::writeExport(int port_num, u16 value) {
|
||||
JUT_ASSERT(51, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x10[port_num] = 1;
|
||||
field_0x20[port_num] = value;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,46 +3,80 @@
|
||||
// Translation Unit: dspproc.c
|
||||
//
|
||||
|
||||
#include "dspproc.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/dspproc.h"
|
||||
#include "JSystem/JAudio/JASDSPInterface.h"
|
||||
#include "JSystem/JAudio/dsptask.h"
|
||||
#include "dolphin/dsp.h"
|
||||
|
||||
/* 8028E600-8028E648 .text DSPReleaseHalt2__FUl */
|
||||
void DSPReleaseHalt2(unsigned long) {
|
||||
/* Nonmatching */
|
||||
void DSPReleaseHalt2(u32 msg) {
|
||||
u32 msgs[2];
|
||||
u16 dspMap = DSP_CreateMap2(msg);
|
||||
msgs[0] = (msg << 16) | dspMap;
|
||||
|
||||
DSPSendCommands2(msgs, 0, NULL);
|
||||
}
|
||||
|
||||
/* 8028E660-8028E694 .text DSPReleaseHalt__Fv */
|
||||
void DSPReleaseHalt() {
|
||||
/* Nonmatching */
|
||||
u32 msgs[2];
|
||||
msgs[0] = 0x30000;
|
||||
DSPSendCommands2(msgs, 0, NULL);
|
||||
}
|
||||
|
||||
static volatile BOOL flag;
|
||||
|
||||
/* 8028E6A0-8028E6AC .text setup_callback__FUs */
|
||||
void setup_callback(unsigned short) {
|
||||
/* Nonmatching */
|
||||
void setup_callback(u16) {
|
||||
flag = 0;
|
||||
}
|
||||
|
||||
/* 8028E6C0-8028E724 .text DsetupTable__FUlUlUlUlUl */
|
||||
void DsetupTable(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void DsetupTable(u32 param_1, u32 param_2, u32 param_3, u32 param_4, u32 param_5) {
|
||||
u32 table[5];
|
||||
table[0] = (param_1 & 0xFFFF) | 0x81000000;
|
||||
table[1] = param_2;
|
||||
table[2] = param_3;
|
||||
table[3] = param_4;
|
||||
table[4] = param_5;
|
||||
flag = 1;
|
||||
DSPSendCommands2(table,5,setup_callback);
|
||||
while (true) {
|
||||
if (flag == 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static u16 DSP_MIXERLEVEL = 0x4000;
|
||||
|
||||
/* 8028E740-8028E764 .text DsetMixerLevel__Ff */
|
||||
void DsetMixerLevel(float) {
|
||||
/* Nonmatching */
|
||||
void DsetMixerLevel(f32 level) {
|
||||
DSP_MIXERLEVEL = 4096.0f * level;
|
||||
}
|
||||
|
||||
/* 8028E780-8028E7C8 .text DsyncFrame__FUlUlUl */
|
||||
void DsyncFrame(unsigned long, unsigned long, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void DsyncFrame(u32 param_1, u32 param_2, u32 param_3) {
|
||||
u32 msgs[3];
|
||||
msgs[0] = (param_1 & 0xff) << 0x10 | 0x82000000 | DSP_MIXERLEVEL;
|
||||
msgs[1] = param_2;
|
||||
msgs[2] = param_3;
|
||||
DSPSendCommands2(msgs, 3, 0);
|
||||
}
|
||||
|
||||
static volatile BOOL d_waitflag;
|
||||
|
||||
/* 8028E7E0-8028E7EC .text dummy_callback__FUs */
|
||||
void dummy_callback(unsigned short) {
|
||||
/* Nonmatching */
|
||||
void dummy_callback(u16) {
|
||||
d_waitflag = 0;
|
||||
}
|
||||
|
||||
/* 8028E800-8028E854 .text DsetDolbyDelay__FUlUs */
|
||||
void DsetDolbyDelay(unsigned long, unsigned short) {
|
||||
/* Nonmatching */
|
||||
void DsetDolbyDelay(u32 param_1, u16 param_2) {
|
||||
u32 msgs[2];
|
||||
msgs[0] = param_2 | 0x8D000000;
|
||||
msgs[1] = param_1;
|
||||
d_waitflag = 1;
|
||||
DSPSendCommands2(msgs, 2, dummy_callback);
|
||||
while (d_waitflag) {}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,36 +3,588 @@
|
||||
// Translation Unit: dsptask.c
|
||||
//
|
||||
|
||||
#include "dsptask.h"
|
||||
#include "JSystem/JAudio/dsptask.h"
|
||||
#include "JSystem/JAudio/osdsp.h"
|
||||
#include "JSystem/JAudio/osdsp_task.h"
|
||||
#include "dolphin/dsp.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 8028E860-8028E898 .text DspHandShake__FPv */
|
||||
void DspHandShake(void*) {
|
||||
/* Nonmatching */
|
||||
while (DSPCheckMailFromDSP() == 0) {}
|
||||
DSPReadMailFromDSP();
|
||||
DSPCheckMailFromDSP();
|
||||
Dsp_Running_Start();
|
||||
}
|
||||
|
||||
static u8 jdsp[] = {
|
||||
0x02, 0x9F, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00,
|
||||
0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0x9F, 0x05, 0xB8,
|
||||
0x02, 0x9F, 0x00, 0x4E, 0x12, 0x05, 0x02, 0xBF, 0x00, 0x57, 0x81, 0x00, 0x00, 0x9F, 0x10, 0x00,
|
||||
0x00, 0x80, 0x00, 0x00, 0x00, 0x5F, 0x1B, 0x1E, 0x02, 0xBF, 0x06, 0x88, 0x02, 0xBF, 0x04, 0xC0,
|
||||
0x02, 0xBF, 0x0E, 0x14, 0x0E, 0x00, 0x02, 0xBF, 0x06, 0x6A, 0x00, 0x9E, 0x11, 0x11, 0x02, 0xBF,
|
||||
0x06, 0x74, 0x0E, 0x00, 0x00, 0xFE, 0x03, 0x4E, 0x13, 0x05, 0x02, 0x9F, 0x06, 0xC5, 0x00, 0xDF,
|
||||
0x03, 0x57, 0x00, 0xFF, 0x03, 0x45, 0x00, 0xDE, 0x03, 0x56, 0x1F, 0xFE, 0x03, 0x40, 0x00, 0xFF,
|
||||
0x00, 0xFF, 0x03, 0x44, 0x14, 0x79, 0x02, 0x40, 0x00, 0x7E, 0x00, 0xFE, 0x03, 0x43, 0x02, 0x00,
|
||||
0x00, 0x75, 0x1C, 0x1E, 0x17, 0x0F, 0x00, 0x92, 0x00, 0xFF, 0x0E, 0x04, 0x02, 0xBF, 0x06, 0x6A,
|
||||
0x00, 0xDE, 0x03, 0x56, 0x02, 0xBF, 0x06, 0x74, 0x02, 0x9F, 0x00, 0x2D, 0x12, 0x05, 0x02, 0xBF,
|
||||
0x00, 0x57, 0x0E, 0x01, 0x02, 0xBF, 0x06, 0x6A, 0x13, 0x05, 0x02, 0x9F, 0x00, 0x2D, 0x12, 0x02,
|
||||
0x12, 0x03, 0x12, 0x04, 0x13, 0x06, 0x8E, 0x00, 0x8C, 0x00, 0x8B, 0x00, 0x00, 0x9E, 0xFF, 0xFF,
|
||||
0x1D, 0x1E, 0x1D, 0x3E, 0x1D, 0x5E, 0x1D, 0x7E, 0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF, 0x00, 0x90,
|
||||
0x00, 0x00, 0x0C, 0x00, 0x00, 0x81, 0x03, 0x58, 0x00, 0x7E, 0x00, 0x71, 0x19, 0x3E, 0x1B, 0x1E,
|
||||
0x19, 0x3E, 0x1B, 0x1E, 0x02, 0xDF, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F,
|
||||
0x00, 0x95, 0x02, 0x9F, 0x02, 0x43, 0x02, 0x9F, 0x00, 0x73, 0x02, 0x9F, 0x05, 0x80, 0x02, 0x9F,
|
||||
0x05, 0x92, 0x02, 0x9F, 0x04, 0x69, 0x02, 0x9F, 0x04, 0x1D, 0x02, 0x9F, 0x04, 0x85, 0x02, 0x9F,
|
||||
0x04, 0x4D, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F,
|
||||
0x00, 0xB2, 0x02, 0x9F, 0x00, 0x43, 0x02, 0x9F, 0x00, 0x43, 0x00, 0x80, 0x03, 0x80, 0x0E, 0x04,
|
||||
0x02, 0xBF, 0x00, 0x67, 0x00, 0x81, 0x03, 0x82, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x80, 0x02, 0x80,
|
||||
0x02, 0xBF, 0x05, 0x23, 0x00, 0x81, 0x03, 0x84, 0x00, 0x9F, 0x03, 0x00, 0x00, 0x80, 0x00, 0x20,
|
||||
0x02, 0xBF, 0x05, 0x23, 0x00, 0xDE, 0x03, 0x45, 0x00, 0xFE, 0x03, 0x42, 0x02, 0xBF, 0x0B, 0xEC,
|
||||
0x02, 0x9F, 0x00, 0x43, 0x00, 0x80, 0x03, 0x74, 0x0E, 0x01, 0x00, 0xFE, 0x03, 0x77, 0x00, 0xFE,
|
||||
0x03, 0x7C, 0x02, 0xBF, 0x00, 0x67, 0x00, 0xDE, 0x03, 0x45, 0x00, 0xFE, 0x03, 0x76, 0x02, 0x9F,
|
||||
0x00, 0x43, 0x00, 0x81, 0x03, 0x4C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x02, 0xBF,
|
||||
0x05, 0x23, 0x02, 0xDF, 0x00, 0x81, 0x03, 0x4C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0x80, 0x00, 0x80,
|
||||
0x00, 0x81, 0x03, 0x4C, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x98, 0x00, 0x00, 0x70, 0x00, 0x02, 0xBF,
|
||||
0x05, 0x32, 0x02, 0xDF, 0x19, 0x1E, 0x19, 0x1A, 0x00, 0x5F, 0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A,
|
||||
0x02, 0xDF, 0x19, 0x1E, 0x19, 0x1A, 0x00, 0x7F, 0x00, 0xE8, 0x32, 0xB2, 0x65, 0xA0, 0x33, 0xBA,
|
||||
0x64, 0xA1, 0x00, 0x00, 0x02, 0xDF, 0x8A, 0x00, 0x15, 0x7F, 0x1C, 0x20, 0x1C, 0x03, 0x19, 0x3A,
|
||||
0x90, 0x51, 0x92, 0x5B, 0x00, 0x7F, 0x00, 0xF7, 0x46, 0x51, 0x92, 0xB2, 0x46, 0x51, 0x92, 0xB2,
|
||||
0x8B, 0x00, 0x02, 0xDF, 0x8A, 0x00, 0x19, 0x1A, 0x90, 0x50, 0x92, 0x50, 0x00, 0x5F, 0x92, 0xA0,
|
||||
0x8B, 0x00, 0x02, 0xDF, 0x81, 0x00, 0x89, 0x00, 0x0E, 0x50, 0x00, 0x80, 0x0D, 0x00, 0x00, 0x5E,
|
||||
0x1B, 0x1F, 0x00, 0x80, 0x0D, 0x60, 0x00, 0x5E, 0x1B, 0x1F, 0x02, 0xBF, 0x0E, 0x3F, 0x81, 0x00,
|
||||
0x89, 0x00, 0x0E, 0x50, 0x00, 0x80, 0x0C, 0xA0, 0x00, 0x5E, 0x1B, 0x1F, 0x00, 0x80, 0x0F, 0x40,
|
||||
0x00, 0x5E, 0x1B, 0x1F, 0x00, 0x80, 0x0F, 0xA0, 0x00, 0x5E, 0x1B, 0x1F, 0x00, 0x80, 0x0A, 0x00,
|
||||
0x00, 0x5E, 0x1B, 0x1F, 0x00, 0x80, 0x09, 0xA0, 0x00, 0x5E, 0x1B, 0x1F, 0x02, 0xDF, 0x00, 0xC0,
|
||||
0x03, 0xA0, 0x19, 0x1A, 0x00, 0xDF, 0x03, 0xA1, 0x00, 0x9B, 0x00, 0xA0, 0x00, 0x81, 0x03, 0x93,
|
||||
0x18, 0xBC, 0xB8, 0x71, 0xBC, 0x00, 0x00, 0x80, 0x00, 0x50, 0x05, 0x08, 0x02, 0xBF, 0x05, 0x25,
|
||||
0x00, 0xDE, 0x03, 0x90, 0x02, 0xA0, 0x00, 0x01, 0x02, 0x9D, 0x01, 0x45, 0x00, 0x80, 0x03, 0x98,
|
||||
0x0E, 0x08, 0x00, 0xC1, 0x03, 0xA1, 0x02, 0xBF, 0x0B, 0x2E, 0x0F, 0x50, 0x00, 0xC0, 0x03, 0xA1,
|
||||
0x00, 0xDA, 0x03, 0x94, 0x86, 0x00, 0x02, 0x95, 0x01, 0x52, 0x1C, 0x7A, 0x00, 0xD8, 0x03, 0x95,
|
||||
0x02, 0xBF, 0x00, 0xEB, 0x0F, 0x50, 0x00, 0xC0, 0x03, 0xA1, 0x00, 0xDA, 0x03, 0x96, 0x86, 0x00,
|
||||
0x02, 0x95, 0x01, 0x5F, 0x1C, 0x7A, 0x00, 0xD8, 0x03, 0x97, 0x02, 0xBF, 0x00, 0xEB, 0x00, 0xDE,
|
||||
0x03, 0x90, 0x02, 0xA0, 0x00, 0x02, 0x02, 0xDD, 0x00, 0x80, 0x03, 0x98, 0x0E, 0x08, 0x00, 0xC1,
|
||||
0x03, 0xA1, 0x02, 0xBF, 0x0B, 0x2E, 0x02, 0xDF, 0x89, 0x00, 0x00, 0x9F, 0x0D, 0xC0, 0x00, 0xFF,
|
||||
0x03, 0xA1, 0x00, 0x9F, 0x03, 0xA8, 0x00, 0xFF, 0x03, 0xA2, 0x00, 0x9F, 0x03, 0xA4, 0x00, 0xFF,
|
||||
0x03, 0xA0, 0x11, 0x04, 0x01, 0x9F, 0x00, 0xC0, 0x03, 0xA2, 0x00, 0x83, 0x03, 0x90, 0x0F, 0x0E,
|
||||
0x02, 0xBF, 0x00, 0xDA, 0x00, 0xDA, 0x03, 0x90, 0x86, 0x00, 0x02, 0x95, 0x01, 0x91, 0x00, 0xDF,
|
||||
0x03, 0xA1, 0x1C, 0x7F, 0x05, 0x50, 0x1C, 0x1F, 0x0F, 0x06, 0x02, 0xBF, 0x00, 0xDA, 0x02, 0xBF,
|
||||
0x01, 0x27, 0x00, 0xDE, 0x03, 0xA2, 0x04, 0x10, 0x00, 0xFE, 0x03, 0xA2, 0x00, 0xDE, 0x03, 0xA1,
|
||||
0x04, 0x60, 0x00, 0xFE, 0x03, 0xA1, 0x00, 0xDE, 0x03, 0xA0, 0x74, 0x00, 0x00, 0xFE, 0x03, 0xA0,
|
||||
0x0F, 0x50, 0x00, 0x80, 0x0C, 0x00, 0x00, 0x83, 0x0E, 0x80, 0x00, 0x98, 0x7F, 0xFF, 0x02, 0xBF,
|
||||
0x00, 0xEB, 0x0F, 0x50, 0x00, 0x80, 0x0C, 0x00, 0x00, 0x83, 0x0E, 0xE0, 0x00, 0x98, 0xB8, 0x20,
|
||||
0x02, 0xBF, 0x00, 0xEB, 0x0F, 0x28, 0x00, 0x80, 0x0C, 0x78, 0x00, 0x83, 0x0E, 0x80, 0x00, 0x98,
|
||||
0xB8, 0x20, 0x02, 0xBF, 0x00, 0xEB, 0x0F, 0x28, 0x00, 0x80, 0x0C, 0x78, 0x00, 0x83, 0x0E, 0xE0,
|
||||
0x00, 0x98, 0x7F, 0xFF, 0x02, 0xBF, 0x00, 0xEB, 0x81, 0x00, 0x89, 0x00, 0x0E, 0x50, 0x00, 0x80,
|
||||
0x0C, 0x00, 0x00, 0x5E, 0x1B, 0x1F, 0x00, 0x80, 0x0C, 0x50, 0x00, 0x5E, 0x1B, 0x1F, 0x02, 0xDF,
|
||||
0x00, 0xC0, 0x03, 0xA0, 0x18, 0x1A, 0x81, 0x00, 0x18, 0x1E, 0x00, 0xDB, 0x03, 0x91, 0x74, 0x00,
|
||||
0xD1, 0x00, 0x02, 0x70, 0x81, 0x00, 0x1B, 0x1E, 0x00, 0xDF, 0x03, 0xA1, 0x00, 0x9B, 0x00, 0xA0,
|
||||
0x00, 0x81, 0x03, 0x93, 0x18, 0xBC, 0xB8, 0x71, 0xBC, 0x00, 0x00, 0x80, 0x00, 0x50, 0x02, 0xBF,
|
||||
0x05, 0x32, 0x02, 0xDF, 0x89, 0x00, 0x0F, 0x28, 0x00, 0x80, 0x0C, 0x50, 0x00, 0x83, 0x0E, 0xA8,
|
||||
0x00, 0x98, 0xB8, 0x20, 0x02, 0xBF, 0x00, 0xEB, 0x89, 0x00, 0x0F, 0x28, 0x00, 0x80, 0x0C, 0x50,
|
||||
0x00, 0x83, 0x0F, 0x08, 0x00, 0x98, 0x7F, 0xFF, 0x02, 0xBF, 0x00, 0xEB, 0x00, 0x9F, 0x0D, 0xC0,
|
||||
0x00, 0xFF, 0x03, 0xA1, 0x00, 0x9F, 0x03, 0xA8, 0x00, 0xFF, 0x03, 0xA2, 0x00, 0x9F, 0x03, 0xA4,
|
||||
0x00, 0xFF, 0x03, 0xA0, 0x11, 0x04, 0x02, 0x28, 0x00, 0xC0, 0x03, 0xA2, 0x00, 0x83, 0x03, 0x90,
|
||||
0x0F, 0x0E, 0x02, 0xBF, 0x00, 0xDA, 0x00, 0xDA, 0x03, 0x90, 0x86, 0x00, 0x02, 0x95, 0x02, 0x1A,
|
||||
0x02, 0xBF, 0x01, 0xD0, 0x00, 0xDE, 0x03, 0xA2, 0x04, 0x10, 0x00, 0xFE, 0x03, 0xA2, 0x00, 0xDE,
|
||||
0x03, 0xA1, 0x04, 0x60, 0x00, 0xFE, 0x03, 0xA1, 0x00, 0xDE, 0x03, 0xA0, 0x74, 0x00, 0x00, 0xFE,
|
||||
0x03, 0xA0, 0x02, 0xDF, 0x00, 0x81, 0x03, 0x86, 0x00, 0x9F, 0x03, 0xA8, 0x00, 0x80, 0x00, 0x40,
|
||||
0x02, 0xBF, 0x05, 0x23, 0x02, 0xDF, 0x19, 0x1E, 0x18, 0x9C, 0x48, 0x00, 0x1B, 0x1E, 0x1B, 0x1C,
|
||||
0x02, 0xDF, 0x81, 0x00, 0x89, 0x00, 0x00, 0xDF, 0x03, 0x54, 0x00, 0xDE, 0x03, 0x4E, 0x82, 0x00,
|
||||
0x02, 0x93, 0x02, 0x39, 0x02, 0xDF, 0x00, 0x80, 0x03, 0x88, 0x00, 0x81, 0x00, 0x67, 0x0E, 0x02,
|
||||
0x17, 0x3F, 0x00, 0xDE, 0x03, 0x44, 0x00, 0xFE, 0x03, 0x41, 0x00, 0xDE, 0x03, 0x45, 0x00, 0xFE,
|
||||
0x03, 0x8E, 0x81, 0x00, 0x00, 0xFE, 0x03, 0x55, 0x02, 0xBF, 0x02, 0x2A, 0x02, 0xBF, 0x05, 0xA4,
|
||||
0x00, 0xDE, 0x03, 0x41, 0x00, 0x7E, 0x04, 0x18, 0x02, 0xBF, 0x01, 0x02, 0x02, 0xBF, 0x01, 0x6C,
|
||||
0x02, 0xBF, 0x09, 0x5F, 0x00, 0xDE, 0x03, 0x55, 0x74, 0x00, 0x00, 0xFE, 0x03, 0x55, 0x81, 0x00,
|
||||
0x00, 0xFE, 0x03, 0x54, 0x00, 0xDE, 0x03, 0x42, 0x00, 0x7E, 0x03, 0xC0, 0x02, 0xBF, 0x02, 0x39,
|
||||
0x81, 0x00, 0x89, 0x00, 0x00, 0xDE, 0x03, 0x54, 0x14, 0x7C, 0x02, 0x00, 0x04, 0xFC, 0x1C, 0x1E,
|
||||
0x18, 0x1F, 0x00, 0xDE, 0x03, 0x54, 0x02, 0x40, 0x00, 0x0F, 0x3D, 0x80, 0x03, 0xC0, 0x80, 0x00,
|
||||
0x02, 0x9C, 0x03, 0xBC, 0x00, 0xD8, 0x03, 0x54, 0x00, 0x9A, 0x01, 0x80, 0x81, 0x00, 0x00, 0xDE,
|
||||
0x03, 0x80, 0x00, 0xDC, 0x03, 0x81, 0x90, 0x00, 0x94, 0x00, 0x00, 0xFE, 0x03, 0x4C, 0x00, 0xFC,
|
||||
0x03, 0x4D, 0x02, 0xBF, 0x00, 0xC1, 0x00, 0xDA, 0x04, 0x00, 0x86, 0x00, 0x02, 0x95, 0x03, 0xBC,
|
||||
0x00, 0xDA, 0x04, 0x01, 0x86, 0x00, 0x02, 0x94, 0x03, 0xBC, 0x00, 0xDA, 0x04, 0x33, 0x00, 0xFA,
|
||||
0x03, 0xF8, 0x00, 0xDA, 0x04, 0x06, 0x86, 0x00, 0x02, 0x94, 0x0D, 0xFF, 0x81, 0x00, 0x00, 0xDE,
|
||||
0x04, 0x80, 0x06, 0x09, 0x02, 0x95, 0x02, 0xBD, 0x06, 0x05, 0x02, 0x95, 0x02, 0xBD, 0x06, 0x08,
|
||||
0x02, 0x95, 0x09, 0x8F, 0x06, 0x10, 0x02, 0x95, 0x0A, 0x14, 0x06, 0x20, 0x02, 0x95, 0x0A, 0x9A,
|
||||
0x06, 0x21, 0x02, 0x95, 0x0A, 0xA2, 0x02, 0x9F, 0x08, 0x7C, 0x00, 0xD8, 0x04, 0x02, 0x81, 0x00,
|
||||
0x89, 0x00, 0x00, 0xDC, 0x04, 0x30, 0x8D, 0x00, 0x09, 0x50, 0xA0, 0x00, 0xA4, 0x00, 0x14, 0x04,
|
||||
0x8C, 0x00, 0x1F, 0xFE, 0x00, 0x83, 0x05, 0x80, 0x02, 0xBF, 0x07, 0x3D, 0x02, 0x9F, 0x02, 0xD0,
|
||||
0x00, 0x80, 0x05, 0x80, 0x00, 0x81, 0x05, 0x20, 0x00, 0x99, 0x00, 0x00, 0x02, 0xBF, 0x0D, 0x7F,
|
||||
0x00, 0xDA, 0x04, 0xA8, 0x86, 0x00, 0x02, 0x95, 0x02, 0xE1, 0x00, 0x80, 0x05, 0x20, 0x02, 0xBF,
|
||||
0x0C, 0x84, 0x00, 0x9E, 0x05, 0x20, 0x00, 0xFE, 0x03, 0x8F, 0x89, 0x00, 0x00, 0xDF, 0x04, 0x84,
|
||||
0x03, 0x40, 0x00, 0x1F, 0xB9, 0x00, 0x02, 0x95, 0x03, 0x11, 0x00, 0xDE, 0x03, 0x8F, 0x5C, 0x00,
|
||||
0x00, 0xFE, 0x03, 0x8F, 0x1C, 0x7E, 0x00, 0x80, 0x04, 0x40, 0x05, 0xFE, 0x02, 0xBF, 0x00, 0xDA,
|
||||
0x00, 0x80, 0x04, 0x90, 0x00, 0xC1, 0x03, 0x8F, 0x89, 0x00, 0x00, 0xDF, 0x04, 0x84, 0x03, 0x40,
|
||||
0x00, 0x1F, 0x02, 0xBF, 0x0B, 0x4D, 0x00, 0xDE, 0x03, 0x8F, 0x04, 0x50, 0x1C, 0x1E, 0x00, 0x83,
|
||||
0x04, 0x40, 0x89, 0x00, 0x00, 0xDF, 0x04, 0x84, 0x03, 0x40, 0x00, 0x1F, 0x05, 0xFE, 0x02, 0xBF,
|
||||
0x00, 0xDA, 0x00, 0xDE, 0x04, 0x84, 0x02, 0x40, 0x00, 0x20, 0x02, 0x95, 0x03, 0x33, 0x00, 0x80,
|
||||
0x04, 0xA4, 0x00, 0xC1, 0x03, 0x8F, 0x00, 0x82, 0x04, 0x54, 0x00, 0x83, 0x04, 0xA7, 0x18, 0xFA,
|
||||
0x86, 0x00, 0x02, 0x94, 0x03, 0x31, 0x18, 0xFA, 0x86, 0x00, 0x02, 0x94, 0x03, 0x31, 0x18, 0xFA,
|
||||
0x86, 0x00, 0x02, 0x94, 0x03, 0x31, 0x81, 0x00, 0x18, 0xFE, 0x02, 0x80, 0x7F, 0xFF, 0x02, 0x95,
|
||||
0x03, 0x33, 0x02, 0xBF, 0x0B, 0x68, 0x81, 0x00, 0x00, 0xDE, 0x04, 0x2C, 0xB1, 0x00, 0x02, 0x95,
|
||||
0x03, 0x3D, 0x02, 0xBF, 0x0C, 0xD3, 0x02, 0x9F, 0x03, 0xB2, 0x81, 0x00, 0x1C, 0x9E, 0x1C, 0xDE,
|
||||
0x74, 0x00, 0x1C, 0xFE, 0x81, 0x00, 0x00, 0xDE, 0x04, 0x07, 0xB1, 0x00, 0x02, 0x95, 0x03, 0x55,
|
||||
0x00, 0xC3, 0x03, 0x8F, 0x00, 0x07, 0x00, 0x80, 0x04, 0x77, 0x00, 0x84, 0xFF, 0xFF, 0x00, 0x87,
|
||||
0xFF, 0xFF, 0x19, 0x9A, 0x65, 0x54, 0x00, 0x5E, 0x65, 0xAD, 0x00, 0xDA, 0x04, 0x85, 0x86, 0x00,
|
||||
0x02, 0x95, 0x03, 0x6B, 0x89, 0x00, 0x00, 0x86, 0x00, 0x05, 0x00, 0x82, 0x04, 0x0A, 0x11, 0x06,
|
||||
0x03, 0x63, 0x18, 0xDE, 0x14, 0x7F, 0x4D, 0x36, 0xB9, 0x00, 0x02, 0x94, 0x03, 0x6B, 0x00, 0x9A,
|
||||
0x00, 0x01, 0x00, 0xFA, 0x04, 0x01, 0x8F, 0x00, 0x00, 0x86, 0x00, 0x02, 0x00, 0x82, 0x04, 0x08,
|
||||
0x11, 0x06, 0x03, 0x9B, 0x81, 0x00, 0x19, 0x5E, 0x12, 0x00, 0xB1, 0x00, 0x02, 0x75, 0x13, 0x00,
|
||||
0x1C, 0x7E, 0x19, 0x5E, 0x19, 0x5F, 0x5C, 0x00, 0x14, 0xFB, 0x1F, 0x5E, 0x1F, 0x1C, 0x18, 0x5E,
|
||||
0x02, 0x40, 0x00, 0xFF, 0x1F, 0x7E, 0x18, 0x5E, 0x14, 0x78, 0x00, 0x9C, 0x00, 0x00, 0xD1, 0x00,
|
||||
0x02, 0x95, 0x03, 0x90, 0x18, 0x5E, 0x02, 0x72, 0x74, 0x00, 0x02, 0x71, 0x78, 0x00, 0x1A, 0x5E,
|
||||
0x00, 0x06, 0x00, 0xDE, 0x03, 0x8F, 0x56, 0x00, 0x02, 0x9D, 0x03, 0x99, 0x1C, 0x1E, 0x02, 0xBF,
|
||||
0x0C, 0xA9, 0x00, 0x00, 0x1B, 0x5F, 0x00, 0x0A, 0x8E, 0x00, 0x81, 0x00, 0x00, 0xDE, 0x04, 0x07,
|
||||
0xB1, 0x00, 0x02, 0x95, 0x03, 0xB2, 0x00, 0xC3, 0x03, 0x8F, 0x00, 0x87, 0x00, 0x4F, 0x00, 0x1F,
|
||||
0x00, 0x80, 0x04, 0x77, 0x00, 0x84, 0xFF, 0xFF, 0x00, 0x87, 0xFF, 0xFF, 0x19, 0xFA, 0x65, 0x57,
|
||||
0x00, 0x5E, 0x65, 0xAF, 0x00, 0xDA, 0x04, 0x06, 0x86, 0x00, 0x02, 0x94, 0x03, 0xBA, 0x81, 0x00,
|
||||
0x00, 0xFE, 0x04, 0x04, 0x02, 0xBF, 0x00, 0xCA, 0x00, 0xDE, 0x03, 0x54, 0x74, 0x00, 0x00, 0xFE,
|
||||
0x03, 0x54, 0x0E, 0x00, 0x00, 0xFE, 0x03, 0x4E, 0x0E, 0x04, 0x02, 0xBF, 0x06, 0x6A, 0x00, 0xDE,
|
||||
0x03, 0x55, 0x02, 0x60, 0xFF, 0x00, 0x02, 0xBF, 0x06, 0x74, 0x02, 0xBF, 0x0C, 0x0A, 0x02, 0xBF,
|
||||
0x0C, 0x1C, 0x02, 0xBF, 0x0C, 0x71, 0x00, 0xDE, 0x03, 0x41, 0x78, 0x00, 0x00, 0xFE, 0x03, 0x41,
|
||||
0x00, 0x80, 0x09, 0xA0, 0x00, 0x83, 0x0D, 0x00, 0x0F, 0x50, 0x00, 0x98, 0x5A, 0x82, 0x02, 0xBF,
|
||||
0x00, 0xEB, 0x00, 0x80, 0x09, 0xA0, 0x00, 0x83, 0x0D, 0x60, 0x0F, 0x50, 0x02, 0xBF, 0x00, 0xEB,
|
||||
0x00, 0x83, 0x0D, 0x00, 0x02, 0xBF, 0x0C, 0xC1, 0x00, 0x81, 0x03, 0x88, 0x00, 0x9F, 0x0D, 0x00,
|
||||
0x00, 0x80, 0x00, 0x50, 0x02, 0xBF, 0x05, 0x30, 0x00, 0x80, 0x0F, 0xA0, 0x00, 0x83, 0x0D, 0x60,
|
||||
0x0F, 0x50, 0x00, 0x98, 0x80, 0x00, 0x02, 0xBF, 0x00, 0xEB, 0x00, 0x83, 0x0D, 0x60, 0x02, 0xBF,
|
||||
0x0C, 0xC1, 0x00, 0x81, 0x03, 0x8A, 0x00, 0x9F, 0x0D, 0x60, 0x00, 0x80, 0x00, 0x50, 0x02, 0xBF,
|
||||
0x05, 0x30, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x98, 0x00, 0xA0, 0x00, 0x80, 0x03, 0x88, 0x02, 0xBF,
|
||||
0x02, 0x33, 0x00, 0x80, 0x03, 0x8A, 0x02, 0xBF, 0x02, 0x33, 0x02, 0xBF, 0x01, 0xEA, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x80, 0x00, 0x2D, 0x02, 0x9F, 0x06, 0x03, 0x00, 0x80, 0x03, 0x46, 0x02, 0xBF,
|
||||
0x00, 0x67, 0x02, 0xBF, 0x00, 0x67, 0x00, 0x81, 0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F,
|
||||
0x04, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF, 0x05, 0x25, 0x00, 0x81, 0x03, 0x48, 0x19, 0x3E,
|
||||
0x19, 0x3C, 0x00, 0x9F, 0x08, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF, 0x05, 0x25, 0x00, 0x81,
|
||||
0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F, 0x08, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF,
|
||||
0x05, 0x32, 0x00, 0x81, 0x03, 0x48, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0xC0,
|
||||
0x03, 0x45, 0x02, 0xBF, 0x05, 0x32, 0x02, 0x9F, 0x00, 0x43, 0x00, 0x80, 0x03, 0x46, 0x02, 0xBF,
|
||||
0x00, 0x67, 0x02, 0xBF, 0x00, 0x67, 0x00, 0x81, 0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F,
|
||||
0x04, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF, 0x05, 0x25, 0x00, 0x81, 0x03, 0x48, 0x19, 0x3E,
|
||||
0x19, 0x3C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF, 0x05, 0x32, 0x02, 0x9F,
|
||||
0x00, 0x43, 0x00, 0x80, 0x03, 0x46, 0x02, 0xBF, 0x00, 0x67, 0x02, 0xBF, 0x00, 0x67, 0x00, 0x81,
|
||||
0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF,
|
||||
0x05, 0x55, 0x00, 0x81, 0x03, 0x48, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F, 0x04, 0x00, 0x00, 0xC0,
|
||||
0x03, 0x45, 0x02, 0xBF, 0x05, 0x32, 0x02, 0x9F, 0x00, 0x43, 0x00, 0x80, 0x03, 0x46, 0x02, 0xBF,
|
||||
0x00, 0x67, 0x02, 0xBF, 0x00, 0x67, 0x00, 0x81, 0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x9F,
|
||||
0x04, 0x00, 0x00, 0xC0, 0x03, 0x44, 0x02, 0xBF, 0x05, 0x25, 0x00, 0x81, 0x03, 0x48, 0x19, 0x3E,
|
||||
0x19, 0x3C, 0x00, 0x9F, 0x08, 0x00, 0x00, 0xC0, 0x03, 0x44, 0x02, 0xBF, 0x05, 0x25, 0x00, 0x80,
|
||||
0x04, 0x00, 0x00, 0x83, 0x08, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xDA, 0x03, 0x45, 0x00, 0xDF,
|
||||
0x03, 0x44, 0x8F, 0x00, 0x19, 0x7B, 0xB8, 0x00, 0x19, 0x7B, 0x00, 0x7F, 0x04, 0xB2, 0x19, 0x9E,
|
||||
0xBC, 0x00, 0x80, 0xB2, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x81, 0x03, 0x46, 0x19, 0x3E, 0x19, 0x3C,
|
||||
0x00, 0x9F, 0x04, 0x00, 0x00, 0xC0, 0x03, 0x44, 0x02, 0xBF, 0x05, 0x32, 0x02, 0x9F, 0x00, 0x43,
|
||||
0x00, 0x92, 0x00, 0xFF, 0x81, 0x00, 0x00, 0x80, 0x0B, 0x00, 0x10, 0xFF, 0x1B, 0x1E, 0x1B, 0x1E,
|
||||
0x81, 0x00, 0x00, 0x9F, 0x0B, 0x00, 0x00, 0x80, 0x01, 0x00, 0x02, 0xBF, 0x05, 0x73, 0x02, 0xDF,
|
||||
0x02, 0xBF, 0x04, 0xE1, 0x00, 0xDF, 0x04, 0xFB, 0x00, 0x9E, 0x0B, 0x00, 0x4C, 0x00, 0x1C, 0x1E,
|
||||
0x18, 0x1E, 0x74, 0x00, 0x1A, 0x1E, 0x02, 0xBF, 0x04, 0xEA, 0x81, 0x00, 0x00, 0xFE, 0x04, 0xFB,
|
||||
0x02, 0xDF, 0x00, 0x92, 0x00, 0xFF, 0x81, 0x00, 0x00, 0x9F, 0x0B, 0x00, 0x00, 0x80, 0x00, 0x40,
|
||||
0x02, 0x9F, 0x05, 0x55, 0x81, 0x00, 0x00, 0x9F, 0x0B, 0x00, 0x00, 0x80, 0x00, 0x50, 0x02, 0x9F,
|
||||
0x05, 0x73, 0x02, 0xBF, 0x04, 0xE1, 0x89, 0x00, 0x00, 0x80, 0x04, 0xFC, 0x81, 0x00, 0x11, 0x04,
|
||||
0x05, 0x05, 0x00, 0x00, 0x19, 0x1E, 0x00, 0x00, 0x11, 0x10, 0x05, 0x03, 0x02, 0xC0, 0x00, 0x01,
|
||||
0x02, 0x7D, 0x75, 0x00, 0x14, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0x04, 0xFC,
|
||||
0x00, 0xFE, 0x0B, 0x48, 0x00, 0xDE, 0x04, 0xFD, 0x00, 0xFE, 0x0B, 0x49, 0x00, 0xDE, 0x04, 0xFE,
|
||||
0x00, 0xFE, 0x0B, 0x4A, 0x00, 0xDE, 0x04, 0xFF, 0x00, 0xFE, 0x0B, 0x4B, 0x00, 0x9E, 0x0B, 0x00,
|
||||
0x4C, 0x00, 0x1C, 0x1E, 0x18, 0x1E, 0x74, 0x00, 0x1A, 0x1E, 0x02, 0xBF, 0x04, 0xEA, 0x02, 0xDF,
|
||||
0x02, 0xBF, 0x04, 0xEA, 0x02, 0xDF, 0x19, 0x3E, 0x19, 0x3C, 0x2F, 0xCD, 0x0F, 0x00, 0x2F, 0xC9,
|
||||
0x2E, 0xCE, 0x2C, 0xCF, 0x1F, 0xE0, 0x15, 0x01, 0x2F, 0xCB, 0x02, 0xBF, 0x05, 0x36, 0x02, 0xDF,
|
||||
0x19, 0x3E, 0x19, 0x3C, 0x2F, 0xCD, 0x0F, 0x01, 0x02, 0x9F, 0x05, 0x27, 0x26, 0xC9, 0x02, 0xA0,
|
||||
0x00, 0x04, 0x02, 0x9C, 0x05, 0x36, 0x02, 0xDF, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0xFF, 0xFF, 0xCD,
|
||||
0x0F, 0x00, 0x00, 0xFF, 0xFF, 0xC9, 0x00, 0xFE, 0xFF, 0xCE, 0x00, 0xFC, 0xFF, 0xCF, 0x1F, 0xE0,
|
||||
0x15, 0x01, 0x00, 0xFF, 0xFF, 0xCB, 0x02, 0xDF, 0x00, 0xDE, 0xFF, 0xC9, 0x02, 0xA0, 0x00, 0x04,
|
||||
0x02, 0x9C, 0x05, 0x4C, 0x02, 0xDF, 0x19, 0x3E, 0x19, 0x3C, 0x02, 0x40, 0x7F, 0xFF, 0x02, 0xBF,
|
||||
0x05, 0x61, 0x00, 0x7A, 0x05, 0x5F, 0x26, 0xD3, 0x1B, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0xDF, 0x1C, 0x3F, 0x0F, 0x0A, 0x2F, 0xD1, 0x1F, 0x5E, 0x1F, 0x1C, 0x00, 0x9E, 0xFF, 0xFF,
|
||||
0x2E, 0xD6, 0x2E, 0xD7, 0x1F, 0xDA, 0x1F, 0x98, 0x14, 0x7F, 0x2E, 0xD8, 0x2C, 0xD9, 0x1F, 0x40,
|
||||
0x02, 0xDF, 0x19, 0x3E, 0x19, 0x3C, 0x00, 0x90, 0x00, 0x01, 0x02, 0xBF, 0x05, 0x61, 0x00, 0x7A,
|
||||
0x05, 0x7E, 0x19, 0x3E, 0x2E, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xDF,
|
||||
0x00, 0x80, 0x03, 0x46, 0x02, 0xBF, 0x00, 0x67, 0x02, 0xBF, 0x00, 0x67, 0x00, 0x81, 0x03, 0x46,
|
||||
0x00, 0xDF, 0x03, 0x49, 0x03, 0x40, 0xFF, 0xFF, 0x00, 0xC0, 0x03, 0x45, 0x02, 0xBF, 0x05, 0x23,
|
||||
0x02, 0x9F, 0x00, 0x43, 0x00, 0x80, 0x03, 0x46, 0x02, 0xBF, 0x00, 0x67, 0x02, 0xBF, 0x00, 0x67,
|
||||
0x00, 0x81, 0x03, 0x46, 0x00, 0xDF, 0x03, 0x49, 0x03, 0x40, 0xFF, 0xFF, 0x00, 0xC0, 0x03, 0x45,
|
||||
0x02, 0xBF, 0x05, 0x30, 0x02, 0x9F, 0x00, 0x43, 0x00, 0x92, 0x00, 0xFF, 0x00, 0x9E, 0xFF, 0xFF,
|
||||
0x2E, 0xD4, 0x2E, 0xD5, 0x2E, 0xD6, 0x2E, 0xD7, 0x02, 0xDF, 0x00, 0xFF, 0xFF, 0xD1, 0x03, 0x40,
|
||||
0x00, 0x03, 0x79, 0x00, 0x02, 0xCA, 0x00, 0xFE, 0xFF, 0xD8, 0x00, 0xFC, 0xFF, 0xD9, 0x02, 0xDF,
|
||||
0x12, 0x05, 0x8E, 0x00, 0x00, 0xF0, 0x03, 0xFD, 0x00, 0xFC, 0x03, 0xFF, 0xF4, 0x00, 0x00, 0xFC,
|
||||
0x03, 0xFE, 0x00, 0xFA, 0x03, 0xFA, 0x81, 0x00, 0x00, 0xDE, 0xFF, 0xFE, 0x02, 0xC0, 0x80, 0x00,
|
||||
0x02, 0x9C, 0x06, 0xB9, 0x00, 0xDA, 0xFF, 0xFF, 0x86, 0x00, 0x02, 0x94, 0x06, 0x92, 0x00, 0xDE,
|
||||
0xFF, 0xFE, 0x02, 0xC0, 0x80, 0x00, 0x02, 0x9C, 0x05, 0xCF, 0x02, 0x40, 0x00, 0x0F, 0x1F, 0x5E,
|
||||
0x74, 0x00, 0x0C, 0x00, 0x14, 0x04, 0x00, 0xFE, 0x03, 0x4E, 0x1F, 0xDA, 0x1F, 0x40, 0x02, 0x00,
|
||||
0x04, 0xFC, 0x1C, 0x1E, 0x00, 0xDE, 0xFF, 0xFF, 0x1A, 0x1E, 0x1C, 0x1A, 0x00, 0xDE, 0x03, 0xFE,
|
||||
0x00, 0xDC, 0x03, 0xFF, 0x00, 0xD0, 0x03, 0xFD, 0x00, 0xDA, 0x03, 0xFA, 0x13, 0x05, 0x02, 0xFF,
|
||||
0x00, 0x9A, 0x00, 0x02, 0x00, 0xFA, 0x03, 0xA3, 0x00, 0xE0, 0x03, 0xF9, 0x02, 0xBF, 0x06, 0x7C,
|
||||
0x16, 0xFC, 0xDC, 0xD1, 0x16, 0xFD, 0x00, 0x02, 0x16, 0xFB, 0x00, 0x01, 0x00, 0x21, 0x06, 0x17,
|
||||
0x06, 0x18, 0x06, 0x58, 0x06, 0x5B, 0x00, 0xE0, 0x03, 0xF9, 0x00, 0x9E, 0x00, 0x05, 0x02, 0xBF,
|
||||
0x06, 0x6A, 0x8E, 0x00, 0x81, 0x00, 0x89, 0x00, 0x02, 0xBF, 0x06, 0x5E, 0x27, 0xFF, 0x00, 0x9E,
|
||||
0x05, 0xFF, 0x4C, 0x00, 0x1C, 0x7E, 0x03, 0x13, 0x1C, 0x7F, 0x17, 0x6F, 0x00, 0x21, 0x00, 0x21,
|
||||
0x00, 0x9A, 0x00, 0x02, 0x00, 0xFA, 0x03, 0xA3, 0x81, 0x00, 0x89, 0x00, 0x02, 0xBF, 0x06, 0x5E,
|
||||
0x24, 0xFF, 0x02, 0xBF, 0x06, 0x64, 0x25, 0xFF, 0x02, 0xBF, 0x06, 0x64, 0x27, 0xFF, 0x2E, 0xCE,
|
||||
0x2C, 0xCF, 0x16, 0xC9, 0x00, 0x01, 0x2F, 0xCD, 0x2D, 0xCB, 0x81, 0x00, 0x89, 0x00, 0x02, 0xBF,
|
||||
0x06, 0x5E, 0x24, 0xFF, 0x1C, 0x9E, 0x1C, 0xBC, 0x02, 0xBF, 0x06, 0x64, 0x25, 0xFF, 0x02, 0xBF,
|
||||
0x06, 0x64, 0x27, 0xFF, 0x1C, 0xDF, 0x1C, 0xFD, 0x81, 0x00, 0x02, 0xBF, 0x06, 0x5E, 0x26, 0xFF,
|
||||
0x1C, 0x1E, 0x89, 0x00, 0x02, 0xBF, 0x06, 0x64, 0x20, 0xFF, 0x1F, 0x5F, 0x02, 0xBF, 0x06, 0x5E,
|
||||
0x21, 0xFF, 0x02, 0xBF, 0x06, 0x5E, 0x23, 0xFF, 0x26, 0xC9, 0x02, 0xA0, 0x00, 0x04, 0x02, 0x9C,
|
||||
0x06, 0x4C, 0x12, 0x06, 0x12, 0x03, 0x12, 0x04, 0x12, 0x05, 0x02, 0x9F, 0x80, 0xB5, 0x00, 0x21,
|
||||
0x02, 0x9F, 0x80, 0x00, 0x00, 0x21, 0x00, 0xC0, 0x03, 0xF9, 0x17, 0x0F, 0x26, 0xFE, 0x02, 0xC0,
|
||||
0x80, 0x00, 0x02, 0x9C, 0x06, 0x5E, 0x02, 0xDF, 0x27, 0xFE, 0x03, 0xC0, 0x80, 0x00, 0x02, 0x9C,
|
||||
0x06, 0x64, 0x02, 0xDF, 0x02, 0xBF, 0x06, 0x82, 0x16, 0xFC, 0xDC, 0xD1, 0x2E, 0xFD, 0x16, 0xFB,
|
||||
0x00, 0x01, 0x02, 0xBF, 0x06, 0x82, 0x02, 0xDF, 0x02, 0xBF, 0x06, 0x82, 0x16, 0xFC, 0xF3, 0x55,
|
||||
0x2E, 0xFD, 0x02, 0xBF, 0x06, 0x82, 0x02, 0xDF, 0x26, 0xFC, 0x02, 0xC0, 0x80, 0x00, 0x02, 0x9D,
|
||||
0x06, 0x7C, 0x02, 0xDF, 0x27, 0xFC, 0x03, 0xC0, 0x80, 0x00, 0x02, 0x9D, 0x06, 0x82, 0x02, 0xDF,
|
||||
0x00, 0x9A, 0x02, 0x80, 0x00, 0xFA, 0x03, 0x50, 0x00, 0xFA, 0x03, 0x51, 0x0A, 0x00, 0x00, 0xFA,
|
||||
0x03, 0x52, 0x02, 0xDF, 0x00, 0xE0, 0x03, 0xFB, 0x00, 0xE8, 0x03, 0xFC, 0x00, 0xC0, 0x03, 0x50,
|
||||
0x00, 0x88, 0x00, 0x2F, 0x1B, 0x1A, 0x00, 0xDE, 0xFF, 0xFE, 0x02, 0xC0, 0x80, 0x00, 0x02, 0x9C,
|
||||
0x06, 0x9B, 0x00, 0xDC, 0xFF, 0xFF, 0x1B, 0x1E, 0x1B, 0x1C, 0x1F, 0xDA, 0x78, 0x00, 0x1F, 0x5E,
|
||||
0x86, 0x00, 0x02, 0x94, 0x06, 0x9B, 0x81, 0x00, 0x00, 0xDE, 0x03, 0x52, 0x74, 0x00, 0x00, 0xFE,
|
||||
0x03, 0x52, 0x00, 0xE0, 0x03, 0x50, 0x00, 0xC0, 0x03, 0xFB, 0x00, 0xC8, 0x03, 0xFC, 0x02, 0x9F,
|
||||
0x05, 0xE6, 0x00, 0xE0, 0x03, 0xFB, 0x00, 0xE8, 0x03, 0xFC, 0x00, 0xC0, 0x03, 0x50, 0x00, 0x88,
|
||||
0x00, 0x2F, 0x0A, 0x00, 0x1B, 0x1A, 0x02, 0x9F, 0x06, 0xAB, 0x00, 0xC0, 0x03, 0x51, 0x00, 0x88,
|
||||
0x00, 0x2F, 0x00, 0xDA, 0x03, 0x52, 0x86, 0x00, 0x02, 0x95, 0x06, 0xED, 0x12, 0x05, 0x00, 0xDA,
|
||||
0x03, 0x52, 0x1F, 0xDA, 0x78, 0x00, 0x00, 0xFE, 0x03, 0x52, 0x13, 0x05, 0x00, 0x81, 0x03, 0x56,
|
||||
0x19, 0x1E, 0x02, 0xC0, 0x80, 0x00, 0x02, 0x9D, 0x06, 0xF1, 0x1F, 0x5E, 0x86, 0x00, 0x02, 0x95,
|
||||
0x06, 0xF5, 0x00, 0x7A, 0x06, 0xE6, 0x19, 0x1E, 0x1B, 0x3E, 0x19, 0x1E, 0x1B, 0x3E, 0x00, 0xE0,
|
||||
0x03, 0x51, 0x00, 0x88, 0xFF, 0xFF, 0x02, 0x9F, 0x00, 0x2F, 0x00, 0x88, 0xFF, 0xFF, 0x02, 0x9F,
|
||||
0x00, 0x2D, 0x00, 0xE0, 0x03, 0x51, 0x02, 0x9F, 0x06, 0xC9, 0x00, 0x80, 0x06, 0xC5, 0x02, 0x9F,
|
||||
0x05, 0xF0, 0x81, 0x00, 0x0E, 0x10, 0x22, 0x32, 0x86, 0x00, 0x02, 0xD5, 0x54, 0x00, 0x02, 0x00,
|
||||
0x04, 0x58, 0x1C, 0x1E, 0x1F, 0xDA, 0x04, 0xFE, 0x1F, 0x1E, 0x19, 0x1E, 0x02, 0x91, 0x07, 0x0C,
|
||||
0x19, 0x1A, 0x00, 0x58, 0x64, 0xA0, 0x64, 0x33, 0x1B, 0x7E, 0x02, 0xDF, 0x02, 0xBF, 0x06, 0xF9,
|
||||
0x81, 0x00, 0x26, 0x32, 0x5C, 0x00, 0x2E, 0x32, 0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF, 0x00, 0xDE,
|
||||
0x04, 0xFB, 0x74, 0x00, 0x00, 0xFE, 0x04, 0xFB, 0x81, 0x00, 0x2E, 0x32, 0x2E, 0x66, 0x2E, 0x67,
|
||||
0x26, 0x8A, 0x24, 0x8B, 0x2E, 0x3A, 0x2C, 0x3B, 0x26, 0x8C, 0x24, 0x8D, 0x2E, 0x38, 0x2C, 0x39,
|
||||
0x02, 0xDF, 0x81, 0x00, 0x26, 0x89, 0x02, 0x40, 0x00, 0x0F, 0x1F, 0x5E, 0x81, 0x00, 0x0E, 0x10,
|
||||
0x54, 0x00, 0x2E, 0x32, 0x26, 0x8A, 0x24, 0x8B, 0x22, 0x88, 0x20, 0x89, 0x58, 0x00, 0x0A, 0x00,
|
||||
0x20, 0x32, 0x58, 0x00, 0x2E, 0x3A, 0x2C, 0x3B, 0x02, 0xDF, 0x00, 0x92, 0x00, 0x04, 0x81, 0x00,
|
||||
0x26, 0x04, 0xB1, 0x00, 0x02, 0xB4, 0x07, 0x17, 0x81, 0x00, 0x26, 0x01, 0xB1, 0x00, 0x02, 0x94,
|
||||
0x07, 0xE5, 0x22, 0x32, 0xC9, 0x00, 0x02, 0x93, 0x07, 0x0E, 0x55, 0x00, 0x02, 0xBF, 0x06, 0xF9,
|
||||
0x22, 0x3A, 0x86, 0x00, 0x02, 0x94, 0x07, 0x59, 0x81, 0x00, 0x26, 0x3B, 0x82, 0x00, 0x02, 0x91,
|
||||
0x07, 0xAB, 0x81, 0x00, 0x1F, 0xDF, 0x04, 0x0F, 0x14, 0x7C, 0x1F, 0x7E, 0x0C, 0x00, 0x14, 0x04,
|
||||
0x1F, 0x1E, 0x0A, 0x00, 0x81, 0x00, 0x26, 0x3A, 0x24, 0x3B, 0x58, 0x00, 0x02, 0x90, 0x07, 0x71,
|
||||
0x81, 0x00, 0x26, 0x3B, 0x5C, 0x00, 0x2E, 0x32, 0x81, 0x00, 0x2E, 0x3A, 0x2E, 0x3B, 0x02, 0x9F,
|
||||
0x07, 0x77, 0x2E, 0x3A, 0x2C, 0x3B, 0x0C, 0x00, 0x1F, 0xD8, 0x5C, 0x00, 0x2E, 0x32, 0x81, 0x00,
|
||||
0x1F, 0xDB, 0x02, 0xBF, 0x07, 0xEB, 0x22, 0x32, 0x86, 0x00, 0x02, 0x95, 0x07, 0xA8, 0x0A, 0x10,
|
||||
0x81, 0x00, 0x1F, 0xC3, 0x54, 0x00, 0x1C, 0x7E, 0x00, 0x80, 0x04, 0x58, 0x19, 0x7E, 0x19, 0x7A,
|
||||
0x10, 0x0E, 0x64, 0xA2, 0x1B, 0x1E, 0x1B, 0x1A, 0x81, 0x00, 0x26, 0x3A, 0x24, 0x3B, 0xB1, 0x00,
|
||||
0x02, 0x94, 0x07, 0xA8, 0x22, 0x32, 0x86, 0x00, 0x02, 0x95, 0x07, 0xA8, 0x00, 0x80, 0x04, 0x67,
|
||||
0x81, 0x00, 0x26, 0x8B, 0xB1, 0x00, 0x02, 0x95, 0x07, 0xA8, 0x02, 0x00, 0x00, 0x0F, 0x02, 0x40,
|
||||
0x00, 0x0F, 0x02, 0x00, 0x04, 0x58, 0x1C, 0x7E, 0x00, 0x7A, 0x07, 0xA7, 0x18, 0xFE, 0x1A, 0x9E,
|
||||
0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF, 0xB1, 0x00, 0x02, 0x95, 0x07, 0xBB, 0x5D, 0x00, 0x04, 0x0F,
|
||||
0x14, 0x7C, 0x0C, 0x00, 0x00, 0xE3, 0x03, 0x63, 0x02, 0xBF, 0x07, 0xEB, 0x00, 0xDE, 0x03, 0x63,
|
||||
0x22, 0x3B, 0x44, 0x00, 0x1C, 0x7E, 0x81, 0x00, 0x26, 0x81, 0xB1, 0x00, 0x02, 0x95, 0x07, 0xE3,
|
||||
0x23, 0x80, 0x26, 0x88, 0x24, 0x89, 0x14, 0x08, 0x14, 0xF4, 0x23, 0x80, 0x8D, 0x00, 0xC8, 0x10,
|
||||
0xAE, 0x00, 0x8C, 0x00, 0xF0, 0x00, 0x4E, 0x00, 0x23, 0x8C, 0x21, 0x8D, 0x4A, 0x00, 0x2E, 0x38,
|
||||
0x2C, 0x39, 0x26, 0x82, 0x2E, 0x67, 0x26, 0x83, 0x2E, 0x66, 0x00, 0xE3, 0x03, 0x63, 0x00, 0x83,
|
||||
0x04, 0x58, 0x81, 0x00, 0x0E, 0x01, 0x02, 0xBF, 0x07, 0xEB, 0x00, 0xC3, 0x03, 0x63, 0x02, 0xBF,
|
||||
0x07, 0x29, 0x02, 0x9F, 0x07, 0x49, 0x0E, 0x01, 0x2E, 0x01, 0x81, 0x00, 0x00, 0x5F, 0x1B, 0x7E,
|
||||
0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF, 0x00, 0xFF, 0x03, 0x60, 0x00, 0xFE, 0x03, 0x61, 0x26, 0x38,
|
||||
0x24, 0x39, 0x0F, 0x05, 0x02, 0xBF, 0x05, 0xAD, 0x26, 0x38, 0x24, 0x39, 0x89, 0x00, 0x00, 0xDF,
|
||||
0x03, 0x61, 0x22, 0x80, 0xD0, 0x00, 0x6F, 0x00, 0x4C, 0x00, 0x2E, 0x38, 0x2C, 0x39, 0x81, 0x00,
|
||||
0x00, 0xDE, 0x03, 0x61, 0x00, 0x7E, 0x08, 0x6B, 0x00, 0x80, 0xFF, 0xD3, 0x00, 0x84, 0x00, 0x00,
|
||||
0x19, 0x9E, 0x89, 0x00, 0x1F, 0xFE, 0x14, 0x01, 0x02, 0x40, 0x00, 0x1E, 0x02, 0x00, 0x03, 0x00,
|
||||
0x1C, 0x3E, 0x15, 0x7C, 0x03, 0x40, 0x00, 0x0F, 0x0A, 0x11, 0x55, 0x00, 0x81, 0x00, 0x26, 0x80,
|
||||
0x06, 0x05, 0x02, 0x95, 0x08, 0x32, 0x00, 0x9A, 0x00, 0xF0, 0x0B, 0x0F, 0x00, 0x82, 0x03, 0x64,
|
||||
0x19, 0x98, 0x60, 0x00, 0x11, 0x07, 0x08, 0x29, 0x34, 0x00, 0x14, 0x08, 0x60, 0x32, 0x36, 0x44,
|
||||
0x14, 0x0C, 0x60, 0x32, 0x34, 0x00, 0x14, 0x08, 0x60, 0x32, 0x36, 0x00, 0x14, 0x0C, 0x1B, 0x5E,
|
||||
0x02, 0x9F, 0x08, 0x52, 0x00, 0x9A, 0xC0, 0x00, 0x00, 0x82, 0x03, 0x64, 0x19, 0x98, 0x60, 0x00,
|
||||
0x11, 0x03, 0x08, 0x45, 0x14, 0x08, 0x34, 0x00, 0x60, 0x32, 0x14, 0x0A, 0x34, 0x00, 0x60, 0x32,
|
||||
0x14, 0x0C, 0x34, 0x00, 0x60, 0x32, 0x14, 0x0E, 0x34, 0x44, 0x60, 0x32, 0x14, 0x08, 0x34, 0x00,
|
||||
0x60, 0x32, 0x14, 0x0A, 0x34, 0x00, 0x60, 0x32, 0x14, 0x0C, 0x34, 0x00, 0x60, 0x32, 0x14, 0x0E,
|
||||
0x34, 0x00, 0x1B, 0x5E, 0x8F, 0x00, 0x1F, 0x7F, 0x20, 0x66, 0x27, 0x67, 0x19, 0x3A, 0x19, 0x39,
|
||||
0x00, 0x80, 0x03, 0x64, 0x1C, 0x80, 0xA0, 0x00, 0xEA, 0x70, 0x11, 0x08, 0x08, 0x66, 0x3A, 0x93,
|
||||
0xA4, 0x78, 0x14, 0x85, 0xE8, 0x33, 0x3B, 0x92, 0xA5, 0x70, 0x15, 0x85, 0xEA, 0x3B, 0x2F, 0x67,
|
||||
0x8E, 0x00, 0x1F, 0xF8, 0x2F, 0x66, 0x89, 0x00, 0x00, 0xDF, 0x03, 0x60, 0x02, 0xDF, 0xB1, 0x00,
|
||||
0x02, 0xD5, 0x04, 0xFE, 0x1F, 0x1E, 0x19, 0x1E, 0x02, 0x91, 0x08, 0x7A, 0x19, 0x1A, 0x00, 0x58,
|
||||
0x64, 0xA0, 0x64, 0x33, 0x1B, 0x7E, 0x02, 0xDF, 0x81, 0x00, 0x1F, 0x5E, 0x00, 0xD8, 0x04, 0x02,
|
||||
0x00, 0xDC, 0x04, 0x30, 0x00, 0x80, 0x05, 0x20, 0x00, 0xDF, 0x04, 0x80, 0x15, 0x01, 0x03, 0x40,
|
||||
0x00, 0x7E, 0x03, 0x00, 0x08, 0x91, 0x1C, 0x5F, 0x17, 0x5F, 0x00, 0xFC, 0x04, 0x30, 0x02, 0x9F,
|
||||
0x02, 0xD8, 0x02, 0x9F, 0x08, 0xB2, 0x02, 0x9F, 0x08, 0xED, 0x02, 0x9F, 0x08, 0xD5, 0x02, 0x9F,
|
||||
0x08, 0xC2, 0x02, 0x9F, 0x08, 0xFB, 0x02, 0x9F, 0x08, 0xB1, 0x02, 0x9F, 0x09, 0x19, 0x02, 0x9F,
|
||||
0x09, 0x1C, 0x02, 0x9F, 0x08, 0xB1, 0x02, 0x9F, 0x08, 0xB1, 0x02, 0x9F, 0x09, 0x3A, 0x02, 0x9F,
|
||||
0x08, 0xF3, 0x02, 0x9F, 0x08, 0xF7, 0x02, 0x9F, 0x08, 0xB1, 0x02, 0x9F, 0x08, 0xB1, 0x02, 0x9F,
|
||||
0x08, 0xB1, 0x02, 0xDF, 0x14, 0x01, 0x00, 0x9B, 0xC0, 0x00, 0x00, 0x99, 0x40, 0x00, 0x11, 0x50,
|
||||
0x08, 0xBF, 0x02, 0xC0, 0x00, 0x01, 0x02, 0x7C, 0x1B, 0x1B, 0x02, 0x7D, 0x1B, 0x19, 0x48, 0x00,
|
||||
0x14, 0x7F, 0x02, 0xDF, 0x14, 0x02, 0x89, 0x00, 0x1F, 0xB8, 0x15, 0x01, 0x00, 0x9B, 0xC0, 0x00,
|
||||
0x00, 0x99, 0x40, 0x00, 0x11, 0x50, 0x08, 0xD2, 0x02, 0xC0, 0x00, 0x03, 0x02, 0x7C, 0x1B, 0x1B,
|
||||
0x02, 0x7D, 0x1B, 0x19, 0x4C, 0x00, 0x14, 0x7E, 0x02, 0xDF, 0x14, 0x01, 0x00, 0x81, 0x0C, 0xA0,
|
||||
0x00, 0x9B, 0xC0, 0x00, 0x00, 0x99, 0x40, 0x00, 0x89, 0x00, 0x00, 0x82, 0x00, 0x00, 0x11, 0x50,
|
||||
0x08, 0xEA, 0x02, 0xC0, 0x00, 0x01, 0x02, 0x7C, 0x1B, 0x1B, 0x02, 0x7D, 0x1B, 0x19, 0x18, 0x3D,
|
||||
0x49, 0x00, 0x1F, 0xE2, 0x4C, 0x39, 0x14, 0x7F, 0x02, 0xDF, 0x89, 0x00, 0x1F, 0xB8, 0x15, 0x7F,
|
||||
0x10, 0x50, 0x4C, 0x20, 0x02, 0xDF, 0x00, 0x82, 0x01, 0x80, 0x02, 0x9F, 0x08, 0xFD, 0x00, 0x82,
|
||||
0x01, 0xC0, 0x02, 0x9F, 0x08, 0xFD, 0x00, 0x82, 0x01, 0x40, 0x00, 0x8A, 0x00, 0x3F, 0x00, 0x86,
|
||||
0x00, 0x00, 0x14, 0x06, 0x89, 0x00, 0x1F, 0xB8, 0x15, 0x05, 0x00, 0x9B, 0x00, 0x3F, 0x00, 0x9A,
|
||||
0x00, 0x00, 0x36, 0x00, 0x1C, 0xDE, 0x00, 0x1A, 0x34, 0x00, 0x11, 0x50, 0x09, 0x13, 0x4C, 0x4A,
|
||||
0x36, 0x06, 0x1C, 0xDE, 0x34, 0x0E, 0x1B, 0x19, 0x1F, 0xC2, 0x14, 0x7A, 0x00, 0x8A, 0xFF, 0xFF,
|
||||
0x02, 0xDF, 0x10, 0x50, 0x1B, 0x18, 0x02, 0xDF, 0x00, 0x82, 0x01, 0x00, 0x00, 0x8A, 0x00, 0x3F,
|
||||
0x00, 0x86, 0x00, 0x00, 0x14, 0x06, 0x89, 0x00, 0x1F, 0xB8, 0x15, 0x05, 0x00, 0x9B, 0x00, 0x3F,
|
||||
0x00, 0x9A, 0x00, 0x00, 0x36, 0x00, 0x1C, 0xDE, 0x00, 0x1A, 0x34, 0x00, 0x11, 0x50, 0x09, 0x34,
|
||||
0x4C, 0x4A, 0x36, 0x06, 0x1C, 0xDE, 0x34, 0x0E, 0x1B, 0x19, 0x1F, 0xC2, 0x14, 0x7A, 0x00, 0x8A,
|
||||
0xFF, 0xFF, 0x02, 0xDF, 0x00, 0x82, 0x01, 0x00, 0x00, 0x8A, 0x00, 0x3F, 0x00, 0x86, 0x00, 0x00,
|
||||
0x00, 0x81, 0x0C, 0xA0, 0x14, 0x06, 0x89, 0x00, 0x1F, 0xB8, 0x15, 0x05, 0x00, 0x9B, 0x00, 0x3F,
|
||||
0x00, 0x9A, 0x00, 0x00, 0x36, 0x00, 0x1C, 0xDE, 0x00, 0x1A, 0x34, 0x00, 0x11, 0x50, 0x09, 0x59,
|
||||
0x19, 0x39, 0xA0, 0x00, 0x14, 0x0A, 0x4E, 0x00, 0x14, 0x76, 0x4C, 0x4A, 0x36, 0x06, 0x1C, 0xDE,
|
||||
0x34, 0x0E, 0x1B, 0x19, 0x1F, 0xC2, 0x14, 0x7A, 0x00, 0x8A, 0xFF, 0xFF, 0x02, 0xDF, 0x00, 0x80,
|
||||
0x01, 0xBE, 0x19, 0x18, 0x19, 0x1A, 0x00, 0x80, 0x01, 0x80, 0x00, 0x83, 0x01, 0x80, 0x90, 0x70,
|
||||
0x1F, 0xFE, 0x11, 0x20, 0x09, 0x70, 0x7C, 0x00, 0xD4, 0x50, 0x65, 0x33, 0xC5, 0x50, 0x15, 0x01,
|
||||
0x64, 0x3B, 0x00, 0x80, 0x01, 0xFE, 0x19, 0x1A, 0x19, 0x18, 0x00, 0x80, 0x01, 0xC0, 0x00, 0x83,
|
||||
0x01, 0xC0, 0x1F, 0xF8, 0x90, 0x70, 0xF8, 0x00, 0x02, 0x40, 0x01, 0xFF, 0x02, 0x60, 0x20, 0x00,
|
||||
0x02, 0xBF, 0x09, 0x83, 0x02, 0xDF, 0xB9, 0x00, 0x02, 0x72, 0x7C, 0x00, 0x1F, 0x7E, 0x47, 0x00,
|
||||
0x11, 0x10, 0x09, 0x8D, 0x47, 0x3B, 0x47, 0x3B, 0x47, 0x3B, 0x47, 0x3B, 0x02, 0xDF, 0x00, 0x92,
|
||||
0x00, 0x04, 0x20, 0x02, 0x81, 0x00, 0x89, 0x00, 0x24, 0x30, 0x8D, 0x00, 0x09, 0x50, 0xA0, 0x00,
|
||||
0xA4, 0x00, 0x14, 0x04, 0x8C, 0x00, 0x1F, 0xFE, 0x00, 0x83, 0x05, 0x80, 0x22, 0x01, 0x86, 0x00,
|
||||
0x02, 0x94, 0x09, 0xB1, 0x22, 0x04, 0x86, 0x00, 0x02, 0xB4, 0x09, 0xF9, 0x81, 0x00, 0x26, 0x05,
|
||||
0xB1, 0x00, 0x02, 0x95, 0x09, 0xBE, 0x81, 0x00, 0x2E, 0x05, 0x22, 0x81, 0x86, 0x00, 0x02, 0x94,
|
||||
0x09, 0xB8, 0x81, 0x00, 0x00, 0x5F, 0x1B, 0x7E, 0x74, 0x00, 0x2E, 0x01, 0x02, 0x9F, 0x09, 0xF2,
|
||||
0x26, 0x88, 0x24, 0x89, 0x2E, 0x34, 0x2C, 0x35, 0x02, 0xBF, 0x09, 0xF9, 0x00, 0xFF, 0x03, 0x60,
|
||||
0x26, 0x38, 0x24, 0x39, 0x0F, 0x05, 0x02, 0xBF, 0x05, 0xAD, 0x00, 0xDF, 0x03, 0x60, 0x81, 0x00,
|
||||
0x26, 0x3A, 0xB1, 0x00, 0x02, 0x94, 0x09, 0xD9, 0x26, 0x3B, 0x5C, 0x00, 0x02, 0x90, 0x09, 0xD9,
|
||||
0x22, 0x3B, 0x02, 0xBF, 0x0A, 0x0A, 0x55, 0x00, 0x0A, 0x01, 0x00, 0xFA, 0x04, 0x05, 0x02, 0x9F,
|
||||
0x09, 0xAB, 0x1F, 0x5F, 0x02, 0xBF, 0x0A, 0x0A, 0x00, 0xFA, 0x03, 0x62, 0x81, 0x00, 0x26, 0x3A,
|
||||
0x24, 0x3B, 0x15, 0x70, 0x0A, 0x01, 0x00, 0x81, 0x04, 0x05, 0x5C, 0x00, 0xB1, 0x00, 0x02, 0x75,
|
||||
0x1A, 0x3A, 0x2E, 0x3A, 0x2C, 0x3B, 0x26, 0x38, 0x24, 0x39, 0x00, 0xD8, 0x03, 0x62, 0x70, 0x00,
|
||||
0x2C, 0x39, 0x2E, 0x38, 0x00, 0x92, 0x00, 0xFF, 0x02, 0x9F, 0x02, 0xD0, 0x81, 0x00, 0x2E, 0x34,
|
||||
0x2E, 0x35, 0x23, 0x34, 0x21, 0x35, 0x26, 0x8A, 0x24, 0x8B, 0x5A, 0x00, 0x2E, 0x3A, 0x2C, 0x3B,
|
||||
0x26, 0x34, 0x24, 0x35, 0x23, 0x8C, 0x21, 0x8D, 0x4A, 0x00, 0x2E, 0x38, 0x2C, 0x39, 0x81, 0x00,
|
||||
0x2E, 0x05, 0x02, 0xDF, 0x00, 0x80, 0xFF, 0xD3, 0x00, 0x84, 0x00, 0x00, 0x00, 0x7A, 0x0A, 0x12,
|
||||
0x19, 0x9E, 0x14, 0x88, 0x1B, 0x7E, 0x02, 0xDF, 0x00, 0x92, 0x00, 0x04, 0x20, 0x02, 0x81, 0x00,
|
||||
0x89, 0x00, 0x24, 0x30, 0x8D, 0x00, 0x09, 0x50, 0xA0, 0x00, 0xA4, 0x00, 0x14, 0x04, 0x8C, 0x00,
|
||||
0x1F, 0xFE, 0x00, 0x83, 0x05, 0x80, 0x22, 0x01, 0x86, 0x00, 0x02, 0x94, 0x0A, 0x36, 0x22, 0x04,
|
||||
0x86, 0x00, 0x02, 0xB4, 0x0A, 0x7F, 0x81, 0x00, 0x26, 0x05, 0xB1, 0x00, 0x02, 0x95, 0x0A, 0x43,
|
||||
0x81, 0x00, 0x2E, 0x05, 0x22, 0x81, 0x86, 0x00, 0x02, 0x94, 0x0A, 0x3D, 0x81, 0x00, 0x00, 0x5F,
|
||||
0x1B, 0x7E, 0x74, 0x00, 0x2E, 0x01, 0x02, 0x9F, 0x0A, 0x78, 0x26, 0x88, 0x24, 0x89, 0x2E, 0x34,
|
||||
0x2C, 0x35, 0x02, 0xBF, 0x0A, 0x7F, 0x00, 0xFF, 0x03, 0x60, 0x26, 0x38, 0x24, 0x39, 0x0F, 0x06,
|
||||
0x02, 0xBF, 0x05, 0xAD, 0x00, 0xDF, 0x03, 0x60, 0x81, 0x00, 0x26, 0x3A, 0xB1, 0x00, 0x02, 0x94,
|
||||
0x0A, 0x5E, 0x26, 0x3B, 0x5C, 0x00, 0x02, 0x90, 0x0A, 0x5E, 0x22, 0x3B, 0x02, 0xBF, 0x0A, 0x91,
|
||||
0x55, 0x00, 0x0A, 0x01, 0x00, 0xFA, 0x04, 0x05, 0x02, 0x9F, 0x0A, 0x30, 0x1F, 0x5F, 0x02, 0xBF,
|
||||
0x0A, 0x91, 0x00, 0xFA, 0x03, 0x62, 0x81, 0x00, 0x26, 0x3A, 0x24, 0x3B, 0x15, 0x70, 0x0A, 0x01,
|
||||
0x00, 0x81, 0x04, 0x05, 0x5C, 0x00, 0xB1, 0x00, 0x02, 0x75, 0x1A, 0x3A, 0x2E, 0x3A, 0x2C, 0x3B,
|
||||
0x26, 0x38, 0x24, 0x39, 0x00, 0xD8, 0x03, 0x62, 0x70, 0x00, 0x70, 0x00, 0x2C, 0x39, 0x2E, 0x38,
|
||||
0x00, 0x92, 0x00, 0xFF, 0x02, 0x9F, 0x02, 0xD0, 0x81, 0x00, 0x2E, 0x34, 0x2E, 0x35, 0x23, 0x34,
|
||||
0x21, 0x35, 0x26, 0x8A, 0x24, 0x8B, 0x5A, 0x00, 0x2E, 0x3A, 0x2C, 0x3B, 0x26, 0x34, 0x24, 0x35,
|
||||
0x14, 0x01, 0x23, 0x8C, 0x21, 0x8D, 0x4A, 0x00, 0x2E, 0x38, 0x2C, 0x39, 0x81, 0x00, 0x2E, 0x05,
|
||||
0x02, 0xDF, 0x00, 0x80, 0xFF, 0xD3, 0x00, 0x84, 0x00, 0x00, 0x00, 0x7A, 0x0A, 0x98, 0x19, 0x9E,
|
||||
0x1B, 0x7E, 0x02, 0xDF, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x83, 0x05, 0x20, 0x02, 0xBF, 0x0A, 0xB3,
|
||||
0x02, 0x9F, 0x02, 0xD8, 0x00, 0xD8, 0x04, 0x02, 0x81, 0x00, 0x89, 0x00, 0x00, 0xDC, 0x04, 0x30,
|
||||
0x0A, 0x50, 0x90, 0x00, 0x94, 0x00, 0x14, 0x04, 0x1F, 0xFE, 0x00, 0x83, 0x05, 0x80, 0x02, 0xBF,
|
||||
0x0A, 0xB3, 0x02, 0x9F, 0x02, 0xD0, 0x00, 0x92, 0x00, 0x04, 0x81, 0x00, 0x26, 0x3A, 0x24, 0x3B,
|
||||
0x1F, 0x1F, 0x0A, 0x00, 0x58, 0x00, 0x02, 0x92, 0x0A, 0xD1, 0x89, 0x00, 0x00, 0xC0, 0x04, 0x3B,
|
||||
0x02, 0xBF, 0x0A, 0xF6, 0x81, 0x00, 0x1F, 0xD8, 0x22, 0x3B, 0x54, 0x00, 0x00, 0x07, 0x19, 0x79,
|
||||
0x00, 0x5E, 0x1B, 0x79, 0x0F, 0x01, 0x2F, 0x01, 0x89, 0x00, 0x2F, 0x3B, 0x00, 0x92, 0x00, 0xFF,
|
||||
0x02, 0xDF, 0x2E, 0x3A, 0x2C, 0x3B, 0x81, 0x00, 0x89, 0x00, 0x26, 0x8A, 0x27, 0x34, 0x5C, 0x00,
|
||||
0x2E, 0x36, 0x50, 0x00, 0x02, 0x90, 0x0A, 0xF0, 0x00, 0xC0, 0x04, 0x36, 0x02, 0xBF, 0x0A, 0xF6,
|
||||
0x81, 0x00, 0x1F, 0xD8, 0x22, 0x36, 0x54, 0x00, 0x1C, 0x1E, 0x81, 0x00, 0x2E, 0x34, 0x26, 0x88,
|
||||
0x24, 0x89, 0x2E, 0x8C, 0x2C, 0x8D, 0x02, 0xBF, 0x0A, 0xF6, 0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF,
|
||||
0x1C, 0x18, 0x02, 0xBF, 0x0A, 0xF6, 0x00, 0x92, 0x00, 0xFF, 0x02, 0xDF, 0x81, 0x00, 0x1F, 0xC0,
|
||||
0xB1, 0x00, 0x02, 0xD5, 0x89, 0x00, 0x27, 0x34, 0x03, 0x40, 0x00, 0x01, 0x0B, 0x00, 0x1F, 0x3F,
|
||||
0x26, 0x8C, 0x24, 0x8D, 0x89, 0x00, 0x25, 0x34, 0x15, 0x01, 0x4C, 0x00, 0x5A, 0x00, 0x5A, 0x00,
|
||||
0x1C, 0x20, 0x1F, 0xE0, 0x05, 0x02, 0x1C, 0x1F, 0x00, 0x9F, 0x0B, 0x00, 0x00, 0x92, 0x00, 0xFF,
|
||||
0x02, 0xBF, 0x05, 0x25, 0x00, 0x92, 0x00, 0x04, 0x27, 0x34, 0x1F, 0x61, 0x47, 0x00, 0x2F, 0x34,
|
||||
0x00, 0x80, 0x0B, 0x00, 0x89, 0x00, 0x1F, 0xF9, 0xB9, 0x00, 0x02, 0x74, 0x00, 0x08, 0x89, 0x00,
|
||||
0x1F, 0xE1, 0x19, 0x1E, 0x07, 0x01, 0x02, 0x93, 0x0B, 0x2C, 0x19, 0x1A, 0x05, 0xFE, 0x00, 0x5F,
|
||||
0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A, 0x02, 0xDF, 0x1B, 0x7E, 0x02, 0xDF, 0x8A, 0x00, 0x00, 0x83,
|
||||
0x03, 0xE8, 0x19, 0x1E, 0x19, 0x1A, 0x10, 0x06, 0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A, 0x00, 0x80,
|
||||
0x03, 0xE8, 0x00, 0x88, 0x00, 0x07, 0x11, 0x50, 0x0B, 0x48, 0x1C, 0x61, 0x84, 0xC3, 0xF2, 0xC3,
|
||||
0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0x00, 0xFE, 0x00,
|
||||
0x1B, 0x3E, 0x00, 0x88, 0xFF, 0xFF, 0x8B, 0x00, 0x02, 0xDF, 0x8A, 0x00, 0x05, 0xFE, 0x00, 0x83,
|
||||
0x03, 0xE8, 0x19, 0x1E, 0x19, 0x1A, 0x00, 0x5F, 0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A, 0x00, 0x80,
|
||||
0x03, 0xE8, 0x05, 0x01, 0x1D, 0x1F, 0x11, 0x50, 0x0B, 0x63, 0x1C, 0x61, 0x84, 0xC3, 0x00, 0x5F,
|
||||
0xF2, 0xC3, 0xF2, 0x00, 0xFE, 0x00, 0x1B, 0x3E, 0x00, 0x88, 0xFF, 0xFF, 0x8B, 0x00, 0x02, 0xDF,
|
||||
0x00, 0x83, 0x03, 0xE8, 0x19, 0x1E, 0x19, 0x1A, 0x64, 0xA0, 0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A,
|
||||
0x00, 0x80, 0x03, 0xE8, 0x00, 0x88, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00,
|
||||
0x1F, 0xC2, 0x19, 0x5B, 0x19, 0x59, 0x19, 0x5F, 0x19, 0x5A, 0x1C, 0x5E, 0x1F, 0xDA, 0x1C, 0x61,
|
||||
0x8A, 0x00, 0x8F, 0x00, 0x19, 0x1A, 0xB8, 0x50, 0xE2, 0x50, 0xEA, 0x50, 0xE8, 0xE8, 0xB6, 0x50,
|
||||
0x11, 0x27, 0x0B, 0x93, 0xE3, 0xA8, 0x19, 0x7E, 0xE8, 0x50, 0xEA, 0xF8, 0xBF, 0x50, 0xE2, 0xA9,
|
||||
0x19, 0x7F, 0xEA, 0x50, 0xE8, 0xE8, 0xB6, 0x50, 0xE3, 0xA8, 0x19, 0x7E, 0xE8, 0x50, 0xEA, 0xF8,
|
||||
0xBF, 0x00, 0x1B, 0xFF, 0x19, 0x7F, 0x8E, 0x00, 0x8B, 0x00, 0x00, 0x88, 0xFF, 0xFF, 0x1B, 0x5B,
|
||||
0x1B, 0x59, 0x1B, 0x5F, 0x1B, 0x5E, 0x02, 0xDF, 0x00, 0x83, 0x03, 0xE8, 0x19, 0x1E, 0x19, 0x1A,
|
||||
0x64, 0xA0, 0x64, 0xA0, 0x1B, 0x7E, 0x1B, 0x7A, 0x00, 0x80, 0x03, 0xE8, 0x00, 0x88, 0x00, 0x03,
|
||||
0x00, 0x85, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x1F, 0xC2, 0x19, 0x5B, 0x19, 0x59, 0x19, 0x5F,
|
||||
0x19, 0x5A, 0x1C, 0x5E, 0x1F, 0xDA, 0x1C, 0x61, 0x8A, 0x00, 0x8F, 0x00, 0x19, 0x1A, 0xB8, 0x00,
|
||||
0xE3, 0x50, 0xE2, 0x50, 0xEA, 0x00, 0xEA, 0x50, 0xE8, 0x77, 0xEC, 0xE8, 0xB2, 0x00, 0x11, 0x27,
|
||||
0x0B, 0xD8, 0xE2, 0x50, 0xE3, 0xA8, 0x19, 0x7E, 0xE8, 0x00, 0xE8, 0x50, 0xEA, 0x7F, 0xEE, 0xF8,
|
||||
0xBB, 0x00, 0xE3, 0x50, 0xE2, 0xA9, 0x19, 0x7F, 0xEA, 0x00, 0xEA, 0x50, 0xE8, 0x77, 0xEC, 0xE8,
|
||||
0xB2, 0x00, 0xE2, 0x50, 0xE3, 0xA8, 0x19, 0x7E, 0xE8, 0x00, 0xE8, 0x50, 0xEA, 0x7F, 0xEE, 0xF8,
|
||||
0xBB, 0x00, 0x1B, 0xFF, 0x19, 0x7F, 0x8E, 0x00, 0x8B, 0x00, 0x00, 0x88, 0xFF, 0xFF, 0x1B, 0x5B,
|
||||
0x1B, 0x59, 0x1B, 0x5F, 0x1B, 0x5E, 0x02, 0xDF, 0x0E, 0xFF, 0x00, 0xFE, 0x03, 0xF2, 0x81, 0x00,
|
||||
0x00, 0xFE, 0x03, 0xF0, 0x00, 0xFE, 0x03, 0xF6, 0x00, 0x9E, 0x01, 0x00, 0x00, 0xFE, 0x03, 0xF7,
|
||||
0x00, 0xDA, 0x03, 0xF7, 0x00, 0x9E, 0x80, 0x00, 0x54, 0x00, 0x00, 0xFE, 0x03, 0xF5, 0x0E, 0x30,
|
||||
0x00, 0xFE, 0x03, 0xF3, 0x0E, 0x10, 0x00, 0xFE, 0x03, 0xF4, 0x00, 0x9E, 0x00, 0x96, 0x00, 0xFE,
|
||||
0x03, 0xF1, 0x02, 0xDF, 0x00, 0x80, 0x0A, 0x00, 0x81, 0x00, 0x00, 0xDE, 0x03, 0xF0, 0x89, 0x00,
|
||||
0xB1, 0x00, 0x02, 0x75, 0x05, 0x50, 0x00, 0xFF, 0x03, 0xF0, 0x02, 0x00, 0x0A, 0x60, 0x1C, 0x7E,
|
||||
0x0F, 0x4E, 0x02, 0xBF, 0x00, 0xDA, 0x02, 0xDF, 0x00, 0xDE, 0x03, 0xF1, 0x02, 0x00, 0x0A, 0x60,
|
||||
0x1C, 0x7E, 0x81, 0x00, 0x89, 0x00, 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xDE, 0x03, 0xF1, 0x5D, 0x00,
|
||||
0x0E, 0x50, 0x07, 0x50, 0x02, 0x70, 0x5D, 0x00, 0x00, 0xDA, 0x03, 0xF2, 0x86, 0x00, 0x02, 0x90,
|
||||
0x0C, 0x4D, 0x00, 0xDE, 0x03, 0xF3, 0x5C, 0x00, 0x02, 0x93, 0x0C, 0x38, 0x02, 0x9F, 0x0C, 0x52,
|
||||
0x00, 0xDB, 0x03, 0xF7, 0x00, 0x9E, 0x80, 0x00, 0x46, 0x00, 0x02, 0x9F, 0x0C, 0x44, 0x00, 0xDB,
|
||||
0x03, 0xF7, 0x00, 0x9E, 0x80, 0x00, 0x56, 0x00, 0x00, 0xFE, 0x03, 0xF5, 0x1F, 0xDA, 0x7C, 0x00,
|
||||
0x1F, 0x5E, 0x00, 0xFE, 0x03, 0xF2, 0x02, 0x9F, 0x0C, 0x52, 0x00, 0xDE, 0x03, 0xF4, 0x5D, 0x00,
|
||||
0x02, 0x93, 0x0C, 0x3F, 0x89, 0x00, 0x00, 0xDD, 0x03, 0xF5, 0x15, 0x01, 0x81, 0x00, 0x00, 0xDC,
|
||||
0x03, 0xF6, 0x00, 0x8B, 0x00, 0x9F, 0x00, 0x80, 0x0A, 0x00, 0x09, 0x00, 0x11, 0x50, 0x0C, 0x65,
|
||||
0x18, 0x78, 0x4C, 0x00, 0x1C, 0xFE, 0x00, 0x1F, 0x1F, 0xD9, 0x1B, 0x18, 0x00, 0x9F, 0x0A, 0x60,
|
||||
0x1F, 0xC3, 0x5C, 0x00, 0x00, 0xFE, 0x03, 0xF1, 0x00, 0xFC, 0x03, 0xF6, 0x00, 0x8B, 0xFF, 0xFF,
|
||||
0x02, 0xDF, 0x0F, 0x50, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x83, 0x0D, 0x60, 0x00, 0x98, 0x3F, 0xFF,
|
||||
0x02, 0xBF, 0x00, 0xEB, 0x0F, 0x50, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x83, 0x0D, 0x00, 0x00, 0x98,
|
||||
0x3F, 0xFF, 0x02, 0xBF, 0x00, 0xEB, 0x02, 0xDF, 0x8A, 0x00, 0x8F, 0x00, 0x81, 0x00, 0x00, 0xDE,
|
||||
0x04, 0x04, 0xB1, 0x00, 0x02, 0x95, 0x0C, 0x91, 0x81, 0x00, 0x00, 0xFE, 0x04, 0x78, 0x00, 0xFE,
|
||||
0x04, 0x79, 0x00, 0xDF, 0x04, 0x79, 0x00, 0xDB, 0x04, 0x78, 0x09, 0x00, 0x00, 0x84, 0x00, 0x00,
|
||||
0x11, 0x50, 0x0C, 0xA1, 0x19, 0x9E, 0x5C, 0x7C, 0xC0, 0x00, 0x6E, 0x00, 0x14, 0x88, 0x4A, 0x00,
|
||||
0x1B, 0x1E, 0x1F, 0x7E, 0x00, 0xFB, 0x04, 0x78, 0x00, 0xFF, 0x04, 0x79, 0x8B, 0x00, 0x8E, 0x00,
|
||||
0x02, 0xDF, 0xB9, 0x00, 0x02, 0x94, 0x0C, 0xAF, 0x68, 0x00, 0xB1, 0x00, 0x02, 0xD5, 0x1C, 0x23,
|
||||
0x19, 0x7E, 0x19, 0x1B, 0xD8, 0x58, 0x11, 0x20, 0x0C, 0xB9, 0xDC, 0xD3, 0x62, 0x31, 0xDC, 0xD3,
|
||||
0x62, 0x31, 0x49, 0x00, 0x11, 0x08, 0x0C, 0xBF, 0xDC, 0xD3, 0x62, 0x31, 0xDC, 0xD3, 0x62, 0x31,
|
||||
0x02, 0xDF, 0x8F, 0x00, 0x8D, 0x00, 0x1C, 0x03, 0x00, 0xD9, 0x03, 0x8E, 0x0B, 0x04, 0x19, 0x7A,
|
||||
0xB0, 0x53, 0xB6, 0x00, 0x11, 0x28, 0x0C, 0xCF, 0x3A, 0xD3, 0xB6, 0x30, 0x3A, 0xD3, 0xB6, 0x30,
|
||||
0x8C, 0x00, 0x8E, 0x00, 0x02, 0xDF, 0x00, 0xDA, 0x04, 0x85, 0x86, 0x00, 0x02, 0x95, 0x0C, 0xE5,
|
||||
0x81, 0x00, 0x00, 0xDE, 0x04, 0x2A, 0x14, 0x7F, 0x00, 0xFE, 0x04, 0x2B, 0xB1, 0x00, 0x02, 0x94,
|
||||
0x0C, 0xE5, 0x00, 0x9A, 0x00, 0x01, 0x00, 0xFA, 0x04, 0x01, 0x8F, 0x00, 0x81, 0x00, 0x00, 0xDE,
|
||||
0x04, 0x28, 0x14, 0x78, 0x00, 0xDF, 0x04, 0x28, 0x03, 0x40, 0x00, 0x7F, 0x1F, 0x1E, 0x1F, 0x5F,
|
||||
0x02, 0x20, 0x00, 0x7F, 0x1F, 0x3E, 0x03, 0x20, 0x00, 0x7F, 0x1F, 0x7F, 0x81, 0x00, 0x89, 0x00,
|
||||
0x00, 0x9F, 0x02, 0x00, 0x1F, 0xD8, 0x4C, 0x00, 0x1C, 0x1E, 0x18, 0x18, 0x1F, 0xDA, 0x4C, 0x00,
|
||||
0x1C, 0x1E, 0x18, 0x1A, 0x1F, 0xD9, 0x4C, 0x00, 0x1C, 0x1E, 0x18, 0x19, 0x1F, 0xDB, 0x4C, 0x00,
|
||||
0x1C, 0x1E, 0x18, 0x1B, 0x00, 0x80, 0x0B, 0x00, 0x98, 0x00, 0xAE, 0x00, 0xB6, 0x30, 0x96, 0x30,
|
||||
0x6E, 0x30, 0x1B, 0x1E, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x81, 0x0B, 0x04, 0x00, 0xDA, 0x04, 0x2A,
|
||||
0x02, 0xBF, 0x0D, 0x62, 0x00, 0x81, 0x0B, 0x08, 0x00, 0x80, 0x0B, 0x04, 0x00, 0xDA, 0x04, 0x2A,
|
||||
0x00, 0xDE, 0x04, 0x29, 0xC0, 0x00, 0x6E, 0x00, 0x14, 0x81, 0x1F, 0x5E, 0x02, 0xBF, 0x0D, 0x62,
|
||||
0x00, 0x80, 0x0B, 0x00, 0x00, 0x81, 0x0B, 0x0C, 0x81, 0x00, 0x89, 0x00, 0x00, 0xDE, 0x04, 0x2B,
|
||||
0x00, 0xDF, 0x04, 0x2A, 0x00, 0xFE, 0x04, 0x2A, 0x5C, 0x00, 0x1F, 0x5E, 0x02, 0xBF, 0x0D, 0x6B,
|
||||
0x00, 0x80, 0x0B, 0x0C, 0x00, 0x81, 0x0B, 0x10, 0x00, 0xDA, 0x04, 0x29, 0x02, 0xBF, 0x0D, 0x62,
|
||||
0x00, 0x81, 0x0B, 0x04, 0x00, 0x82, 0x0B, 0x0C, 0x00, 0x83, 0x0D, 0x77, 0x11, 0x08, 0x0D, 0x5F,
|
||||
0x19, 0x5F, 0x15, 0xFB, 0x1F, 0x1D, 0x1F, 0x5F, 0x19, 0x3F, 0x00, 0xE1, 0x0B, 0x24, 0x00, 0xE2,
|
||||
0x0B, 0x25, 0x02, 0x1B, 0x00, 0xE3, 0x0B, 0x26, 0x1C, 0x7E, 0x00, 0xC0, 0x03, 0x8F, 0x02, 0xBF,
|
||||
0x0C, 0xA9, 0x00, 0xC1, 0x0B, 0x24, 0x00, 0xC2, 0x0B, 0x25, 0x00, 0xC3, 0x0B, 0x26, 0x00, 0x00,
|
||||
0x8E, 0x00, 0x02, 0xDF, 0x19, 0x1F, 0xD0, 0x78, 0xD6, 0x78, 0xD6, 0x31, 0x19, 0x1F, 0xD6, 0x31,
|
||||
0x6E, 0x31, 0x1B, 0x3E, 0x02, 0xDF, 0x8D, 0x00, 0x1F, 0x7E, 0x19, 0x18, 0xA8, 0x40, 0xAE, 0x40,
|
||||
0xAE, 0x31, 0x19, 0x18, 0xAE, 0x31, 0x6E, 0x31, 0x1B, 0x3E, 0x8C, 0x00, 0x02, 0xDF, 0x0D, 0x00,
|
||||
0x0D, 0x60, 0x0F, 0x40, 0x0C, 0xA0, 0x0E, 0x80, 0x0E, 0xE0, 0x0C, 0x00, 0x0C, 0x50, 0x00, 0xF9,
|
||||
0x03, 0x61, 0x1F, 0xC0, 0x02, 0x00, 0xFF, 0xFC, 0x1C, 0x1E, 0x1C, 0x5E, 0x00, 0x83, 0x04, 0x3C,
|
||||
0x19, 0x7E, 0x19, 0x7F, 0x80, 0xA2, 0x64, 0xA3, 0x65, 0x30, 0x1B, 0x1F, 0x1C, 0x02, 0x81, 0x00,
|
||||
0x00, 0xDE, 0x04, 0x02, 0x00, 0xFE, 0x03, 0x62, 0x14, 0x74, 0x1F, 0x7E, 0x1F, 0x3C, 0x89, 0x00,
|
||||
0x00, 0xDD, 0x04, 0x30, 0x15, 0x04, 0x06, 0x04, 0x02, 0x90, 0x0D, 0xF3, 0x1F, 0xDD, 0x00, 0x82,
|
||||
0x02, 0xB0, 0x10, 0x50, 0x4B, 0x2A, 0x1F, 0xBE, 0x00, 0xFE, 0x03, 0x60, 0x89, 0x00, 0x1F, 0xBE,
|
||||
0x0A, 0xF8, 0x00, 0x9B, 0x00, 0xFC, 0x00, 0xD8, 0x03, 0x61, 0x00, 0x82, 0x02, 0xB0, 0x00, 0x83,
|
||||
0x02, 0xB0, 0x19, 0x5E, 0x34, 0x80, 0x11, 0x28, 0x0D, 0xB8, 0x36, 0x7A, 0x35, 0xB3, 0x37, 0x72,
|
||||
0x34, 0xBB, 0x8A, 0x00, 0x00, 0x82, 0x02, 0xB0, 0x00, 0xDD, 0x04, 0x30, 0x15, 0x04, 0x1F, 0xE0,
|
||||
0x81, 0x00, 0x00, 0xDE, 0x03, 0x62, 0x14, 0x74, 0x1F, 0x7E, 0x1F, 0x3C, 0x8F, 0x00, 0x19, 0x43,
|
||||
0x4B, 0xC3, 0x90, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0x00, 0xFE, 0x00, 0x1C, 0x1F, 0x19, 0x43,
|
||||
0x4B, 0xC3, 0x90, 0xC3, 0x11, 0x4E, 0x0D, 0xDA, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0x31, 0x1C, 0x1F,
|
||||
0x19, 0x43, 0x4B, 0xC3, 0x92, 0xC3, 0xF2, 0xC3, 0xF2, 0xC3, 0xF2, 0x31, 0xFE, 0x00, 0x1B, 0x3E,
|
||||
0x8B, 0x00, 0x8E, 0x00, 0x00, 0xFE, 0x04, 0x33, 0x1C, 0x1F, 0x15, 0x0C, 0x03, 0x40, 0x0F, 0xFF,
|
||||
0x00, 0xFF, 0x04, 0x30, 0x00, 0x83, 0x04, 0x3C, 0x19, 0x1E, 0x19, 0x1F, 0x80, 0xA0, 0x64, 0xA1,
|
||||
0x65, 0x33, 0x1B, 0x7F, 0x02, 0xDF, 0x1F, 0xE0, 0x1C, 0x1F, 0x11, 0x28, 0x0D, 0xFC, 0x4B, 0x70,
|
||||
0x1B, 0x3E, 0x1C, 0x1F, 0x4B, 0x70, 0x1B, 0x3E, 0x1C, 0x1F, 0x02, 0x9F, 0x0D, 0xE2, 0x00, 0x83,
|
||||
0x05, 0x20, 0x00, 0xDE, 0x04, 0x33, 0x10, 0x50, 0x1B, 0x7E, 0x02, 0x9F, 0x02, 0xD8, 0x1C, 0x20,
|
||||
0x18, 0x5F, 0x1F, 0x7F, 0x19, 0x3A, 0x64, 0x00, 0x00, 0x78, 0x0E, 0x11, 0x56, 0x59, 0x67, 0x30,
|
||||
0x55, 0x51, 0x64, 0x38, 0x1A, 0x5B, 0x02, 0xDF, 0x00, 0x98, 0x82, 0x40, 0x00, 0xF8, 0x04, 0xE8,
|
||||
0x00, 0x98, 0x7F, 0xFF, 0x00, 0xF8, 0x04, 0xE9, 0x00, 0x98, 0x7D, 0xBF, 0x00, 0xF8, 0x04, 0xEA,
|
||||
0x00, 0x98, 0x84, 0x3F, 0x00, 0xF8, 0x04, 0xEB, 0x00, 0x98, 0xB2, 0x3B, 0x00, 0xF8, 0x04, 0xF0,
|
||||
0x00, 0x98, 0x7F, 0xFF, 0x00, 0xF8, 0x04, 0xF1, 0x00, 0x98, 0x4D, 0xC4, 0x00, 0xF8, 0x04, 0xF2,
|
||||
0x00, 0x98, 0xD8, 0x08, 0x00, 0xF8, 0x04, 0xF3, 0x00, 0x98, 0x00, 0x00, 0x00, 0x80, 0x04, 0xEC,
|
||||
0x10, 0x04, 0x1B, 0x18, 0x00, 0x80, 0x04, 0xF4, 0x10, 0x04, 0x1B, 0x18, 0x02, 0xDF, 0x00, 0x80,
|
||||
0x0F, 0x40, 0x00, 0x83, 0x0B, 0x00, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x98, 0x67, 0x84, 0x02, 0xBF,
|
||||
0x00, 0xFA, 0x00, 0x80, 0x04, 0xE8, 0x00, 0x82, 0x04, 0xEC, 0x00, 0x81, 0x0B, 0x00, 0x02, 0xBF,
|
||||
0x0B, 0xA4, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x83, 0x0D, 0x00, 0x00, 0x98,
|
||||
0x7F, 0xFF, 0x02, 0xBF, 0x00, 0xEB, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x83,
|
||||
0x0D, 0x60, 0x00, 0x98, 0xB8, 0x20, 0x02, 0xBF, 0x00, 0xEB, 0x00, 0x80, 0x0C, 0xA0, 0x00, 0x83,
|
||||
0x0B, 0x00, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x98, 0x67, 0x84, 0x02, 0xBF, 0x00, 0xFA, 0x00, 0x80,
|
||||
0x04, 0xE8, 0x00, 0x82, 0x04, 0xF4, 0x00, 0x81, 0x0B, 0x00, 0x02, 0xBF, 0x0B, 0xA4, 0x89, 0x00,
|
||||
0x0F, 0x50, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x83, 0x0D, 0x00, 0x00, 0x98, 0x47, 0xE0, 0x02, 0xBF,
|
||||
0x00, 0xEB, 0x89, 0x00, 0x0F, 0x50, 0x00, 0x80, 0x0B, 0x00, 0x00, 0x83, 0x0D, 0x60, 0x00, 0x98,
|
||||
0x80, 0x01, 0x02, 0xBF, 0x00, 0xEB, 0x02, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
static STRUCT_DSP_TASK audio_task;
|
||||
|
||||
static u8 AUDIO_YIELD_BUFFER[8192];
|
||||
|
||||
/* 8028E8A0-8028E94C .text DspBoot__FPFPv_v */
|
||||
void DspBoot(void (*)(void*)) {
|
||||
void DspBoot(void (*param_1)(void*)) {
|
||||
/* Nonmatching */
|
||||
DspInitWork();
|
||||
audio_task.priority = 0xf0;
|
||||
audio_task.iram_mmem_addr = (u16*)(jdsp + 0x80000000);
|
||||
audio_task.iram_length = sizeof(jdsp);
|
||||
audio_task.iram_addr = 0;
|
||||
audio_task.dram_mmem_addr = (u16*)(AUDIO_YIELD_BUFFER + 0x80000000);
|
||||
audio_task.dram_length = sizeof(AUDIO_YIELD_BUFFER);
|
||||
audio_task.dram_addr = 0;
|
||||
audio_task.dsp_init_vector = 0;
|
||||
audio_task.dsp_resume_vector = 0x10;
|
||||
audio_task.init_cb = DspHandShake;
|
||||
audio_task.res_cb = NULL;
|
||||
audio_task.done_cb = NULL;
|
||||
audio_task.req_cb = param_1;
|
||||
DSPInit();
|
||||
DSPAddPriorTask(&audio_task);
|
||||
}
|
||||
|
||||
/* 8028E960-8028EA48 .text DSPSendCommands2__FPUlUlPFUs_v */
|
||||
void DSPSendCommands2(unsigned long*, unsigned long, void (*)(unsigned short)) {
|
||||
int DSPSendCommands2(u32* param_1, u32 param_2, void (*param_3)(u16)) {
|
||||
/* Nonmatching */
|
||||
while (Dsp_Running_Check() == 0);
|
||||
|
||||
BOOL status = OSDisableInterrupts();
|
||||
if (DSPCheckMailToDSP()) {
|
||||
OSRestoreInterrupts(status);
|
||||
return -1;
|
||||
}
|
||||
|
||||
DSPSendMailToDSP(param_2);
|
||||
DSPAssertInt();
|
||||
while(DSPCheckMailToDSP() != 0);
|
||||
|
||||
if (param_1 == 0) {
|
||||
param_2 = 1;
|
||||
}
|
||||
|
||||
int startWorkStatus;
|
||||
if (param_3 != NULL) {
|
||||
startWorkStatus = DspStartWork(param_1[0], param_3);
|
||||
}
|
||||
|
||||
for (int i = 0; i < param_2; i++) {
|
||||
DSPSendMailToDSP(param_1[i]);
|
||||
while (DSPCheckMailToDSP() != 0);
|
||||
}
|
||||
|
||||
OSRestoreInterrupts(status);
|
||||
return startWorkStatus;
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u16 field_0x0;
|
||||
u16 field_0x2;
|
||||
void (*field_0x4)(u16);
|
||||
} TaskWorkStruct;
|
||||
|
||||
static TaskWorkStruct taskwork[16];
|
||||
|
||||
/* 8028EA60-8028EA8C .text DspInitWork__Fv */
|
||||
void DspInitWork() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 16; i++) {
|
||||
taskwork[i].field_0x4 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static u32 taskreadp;
|
||||
static u32 taskwritep;
|
||||
|
||||
/* 8028EAA0-8028EAE8 .text DspStartWork__FUlPFUs_v */
|
||||
void DspStartWork(unsigned long, void (*)(unsigned short)) {
|
||||
/* Nonmatching */
|
||||
int DspStartWork(u32 param_1, void (*param_2)(u16)) {
|
||||
u32 taskWritePrev = taskwritep;
|
||||
u32 writeVal = ((taskWritePrev + 1) & 0xf);
|
||||
if (writeVal == taskreadp) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
taskwritep = writeVal;
|
||||
taskwork[taskWritePrev].field_0x0 = param_1 >> 0x10;
|
||||
taskwork[taskWritePrev].field_0x4 = param_2;
|
||||
return taskWritePrev + 1;
|
||||
}
|
||||
|
||||
/* 8028EB00-8028EB68 .text DspFinishWork__FUs */
|
||||
void DspFinishWork(unsigned short) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
void DspFinishWork(u16 param_1) {
|
||||
if (param_1 == taskwork[taskreadp].field_0x0) {
|
||||
if (taskwork[taskreadp].field_0x4) {
|
||||
taskwork[taskreadp].field_0x4(taskreadp);
|
||||
}
|
||||
|
||||
taskreadp = (taskreadp + 1) & 0xf;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,16 +3,36 @@
|
||||
// Translation Unit: osdsp.c
|
||||
//
|
||||
|
||||
#include "osdsp.h"
|
||||
#include "JSystem/JAudio/osdsp.h"
|
||||
#include "JSystem/JAudio/osdsp_task.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* 8028EB80-8028EC04 .text DSPAddTask */
|
||||
void DSPAddTask {
|
||||
DSPTaskInfo* DSPAddTask(DSPTaskInfo* task) {
|
||||
/* Nonmatching */
|
||||
if (DSP_prior_task == NULL) {
|
||||
OSReport("Prior Task is not inited\n");
|
||||
return NULL;
|
||||
}
|
||||
BOOL status = OSDisableInterrupts();
|
||||
__DSP_insert_task(task);
|
||||
task->state = 0;
|
||||
task->flags = 1;
|
||||
OSRestoreInterrupts(status);
|
||||
return task;
|
||||
}
|
||||
|
||||
/* 8028EC20-8028EC9C .text DSPAddPriorTask__FP15STRUCT_DSP_TASK */
|
||||
void DSPAddPriorTask(STRUCT_DSP_TASK*) {
|
||||
void DSPAddPriorTask(STRUCT_DSP_TASK* task) {
|
||||
/* Nonmatching */
|
||||
if (DSP_prior_task != NULL) {
|
||||
OSReport("Already inited prior DSP task\n");
|
||||
return;
|
||||
}
|
||||
BOOL status = OSDisableInterrupts();
|
||||
DSP_prior_task = (DSPTaskInfo*)task;
|
||||
task->state = 0;
|
||||
task->flags = 1;
|
||||
__DSP_boot_task((DSPTaskInfo*)task);
|
||||
OSRestoreInterrupts(status);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,31 +3,138 @@
|
||||
// Translation Unit: osdsp_task.c
|
||||
//
|
||||
|
||||
#include "osdsp_task.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio/osdsp_task.h"
|
||||
#include "JSystem/JAudio/dspproc.h"
|
||||
#include "dolphin/dsp.h"
|
||||
#include "dolphin/os/OSContext.h"
|
||||
|
||||
u32 sync_stack[3];
|
||||
vu8 DSP_prior_yield;
|
||||
s32 AUDIO_UPDATE_REQUEST;
|
||||
DSPTaskInfo* DSP_prior_task;
|
||||
|
||||
/* 8028ECA0-8028EFA4 .text __DSPHandler */
|
||||
void __DSPHandler {
|
||||
void __DSPHandler(int interrupt, OSContext* context) {
|
||||
/* Nonmatching */
|
||||
OSContext funcContext;
|
||||
__DSPRegs[5] = ((u16)(__DSPRegs[5]) & ~0x28) | 0x80;
|
||||
OSClearContext(&funcContext);
|
||||
OSSetCurrentContext(&funcContext);
|
||||
|
||||
if (DSP_prior_yield == 1 || DSP_prior_yield == 0) {
|
||||
__DSP_curr_task = DSP_prior_task;
|
||||
}
|
||||
|
||||
while (DSPCheckMailFromDSP() == 0);
|
||||
u32 mail = DSPReadMailFromDSP();
|
||||
|
||||
if ((__DSP_curr_task->flags & 2) && mail == 0xDCD10002) {
|
||||
mail = 0xDCD10003;
|
||||
}
|
||||
|
||||
switch (mail) {
|
||||
case 0xDCD10000:
|
||||
__DSP_curr_task->state = 1;
|
||||
if (__DSP_curr_task == DSP_prior_task) {
|
||||
DSP_prior_yield = 1;
|
||||
}
|
||||
if (__DSP_curr_task->init_cb != NULL) {
|
||||
__DSP_curr_task->init_cb(__DSP_curr_task);
|
||||
}
|
||||
break;
|
||||
case 0xDCD10001:
|
||||
__DSP_curr_task->state = 1;
|
||||
if (__DSP_curr_task == DSP_prior_task) {
|
||||
DSP_prior_yield = 1;
|
||||
Dsp_Update_Request();
|
||||
}
|
||||
if (__DSP_curr_task->res_cb != NULL) {
|
||||
__DSP_curr_task->res_cb(__DSP_curr_task);
|
||||
}
|
||||
break;
|
||||
case 0xDCD10002:
|
||||
DSPSendMailToDSP(0xCDD10001);
|
||||
while (DSPCheckMailToDSP() != 0);
|
||||
__DSP_curr_task->state = 2;
|
||||
if (__DSP_curr_task->next == NULL && AUDIO_UPDATE_REQUEST) {
|
||||
__DSP_exec_task(__DSP_curr_task, DSP_prior_task);
|
||||
AUDIO_UPDATE_REQUEST = 0;
|
||||
__DSP_curr_task = DSP_prior_task;
|
||||
} else {
|
||||
__DSP_exec_task(__DSP_curr_task, __DSP_curr_task->next);
|
||||
__DSP_curr_task = __DSP_curr_task->next;
|
||||
}
|
||||
break;
|
||||
case 0xDCD10003:
|
||||
if (__DSP_curr_task->done_cb != NULL) {
|
||||
__DSP_curr_task->done_cb(__DSP_curr_task);
|
||||
}
|
||||
DSPSendMailToDSP(0xCDD10001);
|
||||
while (DSPCheckMailToDSP() != 0);
|
||||
__DSP_curr_task->state = 3;
|
||||
if (__DSP_curr_task->next == NULL) {
|
||||
__DSP_exec_task(NULL, DSP_prior_task);
|
||||
__DSP_remove_task(__DSP_curr_task);
|
||||
__DSP_curr_task = DSP_prior_task;
|
||||
} else {
|
||||
__DSP_exec_task(NULL, __DSP_curr_task->next);
|
||||
__DSP_curr_task = __DSP_curr_task->next;
|
||||
__DSP_remove_task(__DSP_curr_task->prev);
|
||||
}
|
||||
break;
|
||||
case 0xDCD10004:
|
||||
if (__DSP_curr_task->req_cb != NULL) {
|
||||
__DSP_curr_task->req_cb(__DSP_curr_task);
|
||||
}
|
||||
break;
|
||||
case 0xDCD10005:
|
||||
if (__DSP_first_task == NULL || AUDIO_UPDATE_REQUEST) {
|
||||
DSPSendMailToDSP(0xCDD10003);
|
||||
while (DSPCheckMailToDSP() != 0);
|
||||
AUDIO_UPDATE_REQUEST = 0;
|
||||
__DSP_curr_task = DSP_prior_task;
|
||||
Dsp_Update_Request();
|
||||
} else {
|
||||
DSP_prior_yield = 3;
|
||||
DSPSendMailToDSP(0xCDD10001);
|
||||
while (DSPCheckMailToDSP() != 0);
|
||||
__DSP_exec_task(DSP_prior_task, __DSP_first_task);
|
||||
__DSP_curr_task = __DSP_first_task;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
OSClearContext(&funcContext);
|
||||
OSSetCurrentContext(context);
|
||||
}
|
||||
|
||||
/* 8028EFC0-8028F010 .text DsyncFrame2__FUlUlUl */
|
||||
void DsyncFrame2(unsigned long, unsigned long, unsigned long) {
|
||||
/* Nonmatching */
|
||||
void DsyncFrame2(u32 param_1, u32 param_2, u32 param_3) {
|
||||
if (DSP_prior_yield != 1) {
|
||||
sync_stack[0] = param_1;
|
||||
sync_stack[1] = param_2;
|
||||
sync_stack[2] = param_3;
|
||||
AUDIO_UPDATE_REQUEST = 1;
|
||||
return;
|
||||
}
|
||||
DsyncFrame(param_1, param_2, param_3);
|
||||
AUDIO_UPDATE_REQUEST = 0;
|
||||
}
|
||||
|
||||
/* 8028F020-8028F060 .text Dsp_Update_Request__Fv */
|
||||
void Dsp_Update_Request() {
|
||||
/* Nonmatching */
|
||||
if (AUDIO_UPDATE_REQUEST) {
|
||||
DsyncFrame2(sync_stack[0], sync_stack[1], sync_stack[2]);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8028F060-8028F074 .text Dsp_Running_Check__Fv */
|
||||
void Dsp_Running_Check() {
|
||||
bool Dsp_Running_Check() {
|
||||
/* Nonmatching */
|
||||
return DSP_prior_yield == 1;
|
||||
}
|
||||
|
||||
/* 8028F080-8028F08C .text Dsp_Running_Start__Fv */
|
||||
void Dsp_Running_Start() {
|
||||
/* Nonmatching */
|
||||
DSP_prior_yield = 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user