mirror of https://github.com/mgba-emu/mgba.git
GBA Memory: Various AGBPrint fixes
This commit is contained in:
parent
22531a1315
commit
cab3a2272d
2
CHANGES
2
CHANGES
|
@ -7,6 +7,8 @@ Bugfixes:
|
|||
- GBA BIOS: Fix multiboot entry point (fixes Magic Floor)
|
||||
- Switch: Fix final cleanup (fixes mgba.io/i/1283)
|
||||
- Qt: Fix tile and sprite views not always displaying at first
|
||||
- GBA Memory: Fix a few AGBPrint crashes
|
||||
- GBA Memory: Fix OOB ROM reads showing up as AGBPrint memory
|
||||
Misc:
|
||||
- GBA Savedata: EEPROM performance fixes
|
||||
- GBA Savedata: Automatically map 1Mbit Flash files as 1Mbit Flash
|
||||
|
|
|
@ -1647,6 +1647,10 @@ void _pristineCow(struct GBA* gba) {
|
|||
}
|
||||
|
||||
void GBAPrintFlush(struct GBA* gba) {
|
||||
if (!gba->memory.agbPrintBuffer) {
|
||||
return;
|
||||
}
|
||||
|
||||
char oolBuf[0x101];
|
||||
size_t i;
|
||||
for (i = 0; gba->memory.agbPrintCtx.get != gba->memory.agbPrintCtx.put && i < 0x100; ++i) {
|
||||
|
@ -1688,8 +1692,8 @@ static void _agbPrintStore(struct GBA* gba, uint32_t address, int16_t value) {
|
|||
|
||||
static int16_t _agbPrintLoad(struct GBA* gba, uint32_t address) {
|
||||
struct GBAMemory* memory = &gba->memory;
|
||||
int16_t value = 0xFFFF;
|
||||
if (address < AGB_PRINT_TOP) {
|
||||
int16_t value = address >> 1;
|
||||
if (address < AGB_PRINT_TOP && memory->agbPrintBuffer) {
|
||||
LOAD_16(value, address & (SIZE_AGB_PRINT - 1), memory->agbPrintBuffer);
|
||||
} else if ((address & 0x00FFFFF8) == (AGB_PRINT_STRUCT & 0x00FFFFF8)) {
|
||||
value = (&memory->agbPrintCtx.request)[(address & 7) >> 1];
|
||||
|
|
Loading…
Reference in New Issue