@@ -178,7 +178,7 @@
|
|||||||
struct_field o_MusicPlayerTrack_ToneData_sustain, 1
|
struct_field o_MusicPlayerTrack_ToneData_sustain, 1
|
||||||
struct_field o_MusicPlayerTrack_ToneData_release, 1
|
struct_field o_MusicPlayerTrack_ToneData_release, 1
|
||||||
struct_field o_MusicPlayerTrack_gap, 10
|
struct_field o_MusicPlayerTrack_gap, 10
|
||||||
struct_field o_MusicPlayerTrack_unk_3A, 2
|
struct_field o_MusicPlayerTrack_timer, 2
|
||||||
struct_field o_MusicPlayerTrack_unk_3C, 4
|
struct_field o_MusicPlayerTrack_unk_3C, 4
|
||||||
struct_field o_MusicPlayerTrack_cmdPtr, 4
|
struct_field o_MusicPlayerTrack_cmdPtr, 4
|
||||||
struct_field o_MusicPlayerTrack_patternStack, 12
|
struct_field o_MusicPlayerTrack_patternStack, 12
|
||||||
|
|||||||
@@ -257,8 +257,8 @@ struct PokemonCrySong
|
|||||||
u8 tieCmd; // 0x29
|
u8 tieCmd; // 0x29
|
||||||
u8 tieKeyValue; // 0x2A
|
u8 tieKeyValue; // 0x2A
|
||||||
u8 tieVelocityValue; // 0x2B
|
u8 tieVelocityValue; // 0x2B
|
||||||
u8 unkCmd0C[2]; // 0x2C
|
u8 xwaitCmd[2]; // 0x2C
|
||||||
u16 unkCmd0CParam; // 0x2E
|
u16 length; // 0x2E
|
||||||
u8 end[2]; // 0x30
|
u8 end[2]; // 0x30
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -306,7 +306,7 @@ struct MusicPlayerTrack
|
|||||||
struct SoundChannel *chan;
|
struct SoundChannel *chan;
|
||||||
struct ToneData tone;
|
struct ToneData tone;
|
||||||
u8 gap[10];
|
u8 gap[10];
|
||||||
u16 unk_3A;
|
u16 timer;
|
||||||
u32 unk_3C;
|
u32 unk_3C;
|
||||||
u8 *cmdPtr;
|
u8 *cmdPtr;
|
||||||
u8 *patternStack[3];
|
u8 *patternStack[3];
|
||||||
@@ -495,7 +495,7 @@ void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
|||||||
void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||||
void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||||
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||||
void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
void ply_xwait(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||||
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||||
|
|
||||||
#endif // GUARD_GBA_M4A_INTERNAL_H
|
#endif // GUARD_GBA_M4A_INTERNAL_H
|
||||||
|
|||||||
@@ -1612,26 +1612,26 @@ void ply_xswee(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
|
|||||||
track->cmdPtr++;
|
track->cmdPtr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
|
void ply_xwait(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
|
||||||
{
|
{
|
||||||
u32 unk;
|
u32 len;
|
||||||
|
|
||||||
#ifdef UBFIX
|
#ifdef UBFIX
|
||||||
unk = 0;
|
len = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable
|
READ_XCMD_BYTE(len, 0) // UB: uninitialized variable
|
||||||
READ_XCMD_BYTE(unk, 1)
|
READ_XCMD_BYTE(len, 1)
|
||||||
|
|
||||||
if (track->unk_3A < (u16)unk)
|
if (track->timer < (u16)len)
|
||||||
{
|
{
|
||||||
track->unk_3A++;
|
track->timer++;
|
||||||
track->cmdPtr -= 2;
|
track->cmdPtr -= 2;
|
||||||
track->wait = 1;
|
track->wait = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
track->unk_3A = 0;
|
track->timer = 0;
|
||||||
track->cmdPtr += 2;
|
track->cmdPtr += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1719,7 +1719,7 @@ void SetPokemonCryPitch(s16 val)
|
|||||||
|
|
||||||
void SetPokemonCryLength(u16 val)
|
void SetPokemonCryLength(u16 val)
|
||||||
{
|
{
|
||||||
gPokemonCrySong.unkCmd0CParam = val;
|
gPokemonCrySong.length = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPokemonCryRelease(u8 val)
|
void SetPokemonCryRelease(u8 val)
|
||||||
|
|||||||
+4
-3
@@ -251,6 +251,7 @@ const u8 gClockTable[] =
|
|||||||
#define xRELE 0x07
|
#define xRELE 0x07
|
||||||
#define xIECV 0x08
|
#define xIECV 0x08
|
||||||
#define xIECL 0x09
|
#define xIECL 0x09
|
||||||
|
#define xWAIT 0x0c
|
||||||
|
|
||||||
#define EOT 0xce
|
#define EOT 0xce
|
||||||
#define TIE 0xcf
|
#define TIE 0xcf
|
||||||
@@ -283,8 +284,8 @@ const struct PokemonCrySong gPokemonCrySongTemplate =
|
|||||||
TIE,
|
TIE,
|
||||||
60, // TIE key (default is Cn3)
|
60, // TIE key (default is Cn3)
|
||||||
127, // TIE velocity
|
127, // TIE velocity
|
||||||
{XCMD, 0x0C},
|
{XCMD, xWAIT},
|
||||||
60, // unk value
|
60, // frames to wait
|
||||||
{EOT, FINE} // end
|
{EOT, FINE} // end
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -302,6 +303,6 @@ const XcmdFunc gXcmdTable[] =
|
|||||||
ply_xiecl,
|
ply_xiecl,
|
||||||
ply_xleng,
|
ply_xleng,
|
||||||
ply_xswee,
|
ply_xswee,
|
||||||
ply_xcmd_0C,
|
ply_xwait,
|
||||||
ply_xcmd_0D,
|
ply_xcmd_0D,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user