mirror of https://github.com/mgba-emu/mgba.git
GBA BIOS: De-magic constant RegisterRamReset
This commit is contained in:
parent
bbf5a61933
commit
7003d81749
128
src/gba/bios.c
128
src/gba/bios.c
|
@ -104,78 +104,78 @@ static void _RegisterRamReset(struct GBA* gba) {
|
|||
memset(gba->audio.psg.ch3.wavedata32, 0, sizeof(gba->audio.psg.ch3.wavedata32));
|
||||
}
|
||||
if (registers & 0x80) {
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x04, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x06, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x08, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x0A, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x0C, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x0E, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x10, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x12, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x14, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x16, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x18, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x1A, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x1C, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x1E, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DISPSTAT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_VCOUNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG0CNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG1CNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2CNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3CNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG0HOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG0VOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG1HOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG1VOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2HOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2VOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3HOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3VOFS, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2PA, 0x100, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2PB, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2PC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG2PD, 0x100, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | 0x28, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | 0x2C, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | REG_BG2X_LO, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | REG_BG2Y_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3PA, 0x100, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3PB, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3PC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BG3PD, 0x100, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | 0x38, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | 0x3C, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x40, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x42, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x44, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x46, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x48, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x4A, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x4C, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x50, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x52, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x54, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xB0, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xB2, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xB4, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xB6, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xB8, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xBA, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xBC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xBE, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xC0, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xC2, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xC4, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xC6, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xC8, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xCA, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xCC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xCE, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xD0, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xD2, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xD4, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xD6, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xD8, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xDA, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xDC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0xDE, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x100, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x102, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x104, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x106, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x108, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x10A, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x10C, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x10E, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x200, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x202, 0xFFFF, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x204, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | 0x208, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | REG_BG3X_LO, 0, 0);
|
||||
cpu->memory.store32(cpu, BASE_IO | REG_BG3Y_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WIN0H, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WIN1H, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WIN0V, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WIN1V, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WININ, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WINOUT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_MOSAIC, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BLDCNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BLDALPHA, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_BLDY, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0SAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0SAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0DAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0DAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA0CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1SAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1SAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1DAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1DAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA1CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2SAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2SAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2DAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2DAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA2CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3SAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3SAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3DAD_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3DAD_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_DMA3CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM0CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM0CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM1CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM1CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM2CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM2CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM3CNT_LO, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_TM3CNT_HI, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_IE, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_IF, 0xFFFF, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_WAITCNT, 0, 0);
|
||||
cpu->memory.store16(cpu, BASE_IO | REG_IME, 0, 0);
|
||||
}
|
||||
if (registers & 0x9C) {
|
||||
gba->video.renderer->reset(gba->video.renderer);
|
||||
|
|
Loading…
Reference in New Issue