mirror of https://github.com/mgba-emu/mgba.git
GBA DMA: Fix invalid audio DMA parameters
This commit is contained in:
parent
f0ff8d5f82
commit
52a4cbcb81
1
CHANGES
1
CHANGES
|
@ -10,6 +10,7 @@ Emulation fixes:
|
||||||
- GBA BIOS: Implement dummy sound driver calls
|
- GBA BIOS: Implement dummy sound driver calls
|
||||||
- GBA BIOS: Improve HLE BIOS timing
|
- GBA BIOS: Improve HLE BIOS timing
|
||||||
- GBA DMA: Linger last DMA on bus (fixes mgba.io/i/301 and mgba.io/i/1320)
|
- GBA DMA: Linger last DMA on bus (fixes mgba.io/i/301 and mgba.io/i/1320)
|
||||||
|
- GBA DMA: Fix invalid audio DMA parameters
|
||||||
- GBA Memory: Misaligned SRAM writes are ignored
|
- GBA Memory: Misaligned SRAM writes are ignored
|
||||||
- GBA Memory: Improve gamepak prefetch timing
|
- GBA Memory: Improve gamepak prefetch timing
|
||||||
- GBA Serialize: Fix serializing DMA transfer register
|
- GBA Serialize: Fix serializing DMA transfer register
|
||||||
|
|
|
@ -104,6 +104,8 @@ void GBAAudioResizeBuffer(struct GBAAudio* audio, size_t samples) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GBAAudioScheduleFifoDma(struct GBAAudio* audio, int number, struct GBADMA* info) {
|
void GBAAudioScheduleFifoDma(struct GBAAudio* audio, int number, struct GBADMA* info) {
|
||||||
|
info->reg = GBADMARegisterSetDestControl(info->reg, GBA_DMA_FIXED);
|
||||||
|
info->reg = GBADMARegisterSetWidth(info->reg, 1);
|
||||||
switch (info->dest) {
|
switch (info->dest) {
|
||||||
case BASE_IO | REG_FIFO_A_LO:
|
case BASE_IO | REG_FIFO_A_LO:
|
||||||
audio->chA.dmaSource = number;
|
audio->chA.dmaSource = number;
|
||||||
|
@ -129,8 +131,6 @@ void GBAAudioScheduleFifoDma(struct GBAAudio* audio, int number, struct GBADMA*
|
||||||
audio->externalMixing = false;
|
audio->externalMixing = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info->reg = GBADMARegisterSetDestControl(info->reg, GBA_DMA_FIXED);
|
|
||||||
info->reg = GBADMARegisterSetWidth(info->reg, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GBAAudioWriteSOUND1CNT_LO(struct GBAAudio* audio, uint16_t value) {
|
void GBAAudioWriteSOUND1CNT_LO(struct GBAAudio* audio, uint16_t value) {
|
||||||
|
|
Loading…
Reference in New Issue