首要工具,需要任天堂的官方开发包
AGB3.0
http://pan.bai
du.com/s/1hqpF6wW
火纹用的类似开发包内的MusicPlayerAGB2000(或者说是大部分GBA),有没有扩展就不知道了
这楼我们讲音乐程序主要调用,想改写播放程序的看这部分
1,初始化
m4aSoundInit(void)
+---------------SoundDriverInit(SoundArea*);
+---------------SoundDriverMode(u32)
2,在中断执行下列程序
m4aSoundMain(void)
+---------------SoundMain() = SoundDriverMain();
m4aSoundVSync(void) = SoundVSync_rev01() = SoundDriverVsync();
3.切换音乐
m4aSongNumStart(u16) 最大值是999
或者
m4aSongNumStartOrChange(u16)
SoundArea参加AGB\doc\AllManual\header\AgbSound_h
SoundArea指针地址 在游戏时地址:0x3007ff0
//Sound Work Area Structure
typedef struct {
u32 r1; // 保留
vu8 DmaCount; //dma个数,dma数据传输
u8 reverb; //混响值
u8 maxchn; //最大声道
u8 masvol; //主音量
u8 freq; //Direct Sound Replay Frequency Number(1=5734Hz ~ 12=42048Hz),直接声道频率
u8 mode; //Sound Driver Operation Mode,对应初始化的模式
u8 r2[6]; // 保留
u32 r3[16]; // 保留
SoundChannel vchn[12];//声道结构体,重点所有改写程序的重点,最大声道数12
s8 pcmbuf[PCM_DMA_BUF*2]; //播放波形声音的缓存,8bit的wav,不过每个bye-0x80
} SoundArea;

03005400-03005404,保留,游戏内部使用,68736d53表示没有正在处理,68736d54表示正在处理
03005405 ...
03005406 混响值
03005407 最大声道数
03005408 主音量,直接更改可以改变音量
03005409 声音频率模式,5734Hz-42048Hz
0300540a 初始化时的模式
0300540b-0300544f 系统保留
03005450 声道1
03005490 声道2
030054D0 声道3
..... 每个声道0x40
结构体说明参考
http://pan.bai
du.com/s/1kTDpZxl,
不懂的更贴
AGB3.0
http://pan.bai

火纹用的类似开发包内的MusicPlayerAGB2000(或者说是大部分GBA),有没有扩展就不知道了
这楼我们讲音乐程序主要调用,想改写播放程序的看这部分
1,初始化
m4aSoundInit(void)
+---------------SoundDriverInit(SoundArea*);
+---------------SoundDriverMode(u32)
2,在中断执行下列程序
m4aSoundMain(void)
+---------------SoundMain() = SoundDriverMain();
m4aSoundVSync(void) = SoundVSync_rev01() = SoundDriverVsync();
3.切换音乐
m4aSongNumStart(u16) 最大值是999
或者
m4aSongNumStartOrChange(u16)
SoundArea参加AGB\doc\AllManual\header\AgbSound_h
SoundArea指针地址 在游戏时地址:0x3007ff0
//Sound Work Area Structure
typedef struct {
u32 r1; // 保留
vu8 DmaCount; //dma个数,dma数据传输
u8 reverb; //混响值
u8 maxchn; //最大声道
u8 masvol; //主音量
u8 freq; //Direct Sound Replay Frequency Number(1=5734Hz ~ 12=42048Hz),直接声道频率
u8 mode; //Sound Driver Operation Mode,对应初始化的模式
u8 r2[6]; // 保留
u32 r3[16]; // 保留
SoundChannel vchn[12];//声道结构体,重点所有改写程序的重点,最大声道数12
s8 pcmbuf[PCM_DMA_BUF*2]; //播放波形声音的缓存,8bit的wav,不过每个bye-0x80
} SoundArea;

03005400-03005404,保留,游戏内部使用,68736d53表示没有正在处理,68736d54表示正在处理
03005405 ...
03005406 混响值
03005407 最大声道数
03005408 主音量,直接更改可以改变音量
03005409 声音频率模式,5734Hz-42048Hz
0300540a 初始化时的模式
0300540b-0300544f 系统保留
03005450 声道1
03005490 声道2
030054D0 声道3
..... 每个声道0x40
结构体说明参考
http://pan.bai

不懂的更贴