diff --git a/src/gba/gba-bios.c b/src/gba/gba-bios.c index 9cfadc480..57713d3d2 100644 --- a/src/gba/gba-bios.c +++ b/src/gba/gba-bios.c @@ -28,16 +28,16 @@ static void _CpuSet(struct GBA* gba) { if (wordsize == 4) { source &= 0xFFFFFFFC; dest &= 0xFFFFFFFC; - int32_t word = GBALoad32(&gba->memory.d, source, 0); + int32_t word = gba->memory.d.load32(&gba->memory.d, source, 0); for (i = 0; i < count; ++i) { - GBAStore32(&gba->memory.d, dest + (i << 2), word, 0); + gba->memory.d.store32(&gba->memory.d, dest + (i << 2), word, 0); } } else { source &= 0xFFFFFFFE; dest &= 0xFFFFFFFE; - uint16_t word = GBALoad16(&gba->memory.d, source, 0); + uint16_t word = gba->memory.d.load16(&gba->memory.d, source, 0); for (i = 0; i < count; ++i) { - GBAStore16(&gba->memory.d, dest + (i << 1), word, 0); + gba->memory.d.store16(&gba->memory.d, dest + (i << 1), word, 0); } } } else { @@ -45,15 +45,15 @@ static void _CpuSet(struct GBA* gba) { source &= 0xFFFFFFFC; dest &= 0xFFFFFFFC; for (i = 0; i < count; ++i) { - int32_t word = GBALoad32(&gba->memory.d, source + (i << 2), 0); - GBAStore32(&gba->memory.d, dest + (i << 2), word, 0); + int32_t word = gba->memory.d.load32(&gba->memory.d, source + (i << 2), 0); + gba->memory.d.store32(&gba->memory.d, dest + (i << 2), word, 0); } } else { source &= 0xFFFFFFFE; dest &= 0xFFFFFFFE; for (i = 0; i < count; ++i) { - uint16_t word = GBALoad16(&gba->memory.d, source + (i << 1), 0); - GBAStore16(&gba->memory.d, dest + (i << 1), word, 0); + uint16_t word = gba->memory.d.load16(&gba->memory.d, source + (i << 1), 0); + gba->memory.d.store16(&gba->memory.d, dest + (i << 1), word, 0); } } } @@ -67,14 +67,14 @@ static void _FastCpuSet(struct GBA* gba) { count = ((count + 7) >> 3) << 3; int i; if (mode & 0x01000000) { - int32_t word = GBALoad32(&gba->memory.d, source, 0); + int32_t word = gba->memory.d.load32(&gba->memory.d, source, 0); for (i = 0; i < count; ++i) { - GBAStore32(&gba->memory.d, dest + (i << 2), word, 0); + gba->memory.d.store32(&gba->memory.d, dest + (i << 2), word, 0); } } else { for (i = 0; i < count; ++i) { - int32_t word = GBALoad32(&gba->memory.d, source + (i << 2), 0); - GBAStore32(&gba->memory.d, dest + (i << 2), word, 0); + int32_t word = gba->memory.d.load32(&gba->memory.d, source + (i << 2), 0); + gba->memory.d.store32(&gba->memory.d, dest + (i << 2), word, 0); } } } @@ -95,13 +95,13 @@ static void _BgAffineSet(struct GBA* gba) { // [ sx 0 0 ] [ cos(theta) -sin(theta) 0 ] [ 1 0 cx - ox ] [ A B rx ] // [ 0 sy 0 ] * [ sin(theta) cos(theta) 0 ] * [ 0 1 cy - oy ] = [ C D ry ] // [ 0 0 1 ] [ 0 0 1 ] [ 0 0 1 ] [ 0 0 1 ] - ox = GBALoad32(&gba->memory.d, offset, 0) / 256.f; - oy = GBALoad32(&gba->memory.d, offset + 4, 0) / 256.f; - cx = GBALoad16(&gba->memory.d, offset + 8, 0); - cy = GBALoad16(&gba->memory.d, offset + 10, 0); - sx = GBALoad16(&gba->memory.d, offset + 12, 0) / 256.f; - sy = GBALoad16(&gba->memory.d, offset + 14, 0) / 256.f; - theta = (GBALoadU16(&gba->memory.d, offset + 16, 0) >> 8) / 128.f * M_PI; + ox = gba->memory.d.load32(&gba->memory.d, offset, 0) / 256.f; + oy = gba->memory.d.load32(&gba->memory.d, offset + 4, 0) / 256.f; + cx = gba->memory.d.load16(&gba->memory.d, offset + 8, 0); + cy = gba->memory.d.load16(&gba->memory.d, offset + 10, 0); + sx = gba->memory.d.load16(&gba->memory.d, offset + 12, 0) / 256.f; + sy = gba->memory.d.load16(&gba->memory.d, offset + 14, 0) / 256.f; + theta = (gba->memory.d.loadU16(&gba->memory.d, offset + 16, 0) >> 8) / 128.f * M_PI; offset += 20; // Rotation a = d = cosf(theta); @@ -114,12 +114,12 @@ static void _BgAffineSet(struct GBA* gba) { // Translate rx = ox - (a * cx + b * cy); ry = oy - (c * cx + d * cy); - GBAStore16(&gba->memory.d, destination, a * 256, 0); - GBAStore16(&gba->memory.d, destination + 2, b * 256, 0); - GBAStore16(&gba->memory.d, destination + 4, c * 256, 0); - GBAStore16(&gba->memory.d, destination + 6, d * 256, 0); - GBAStore32(&gba->memory.d, destination + 8, rx * 256, 0); - GBAStore32(&gba->memory.d, destination + 12, ry * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination, a * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + 2, b * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + 4, c * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + 6, d * 256, 0); + gba->memory.d.store32(&gba->memory.d, destination + 8, rx * 256, 0); + gba->memory.d.store32(&gba->memory.d, destination + 12, ry * 256, 0); destination += 16; } } @@ -135,9 +135,9 @@ static void _ObjAffineSet(struct GBA* gba) { while (i--) { // [ sx 0 ] [ cos(theta) -sin(theta) ] [ A B ] // [ 0 sy ] * [ sin(theta) cos(theta) ] = [ C D ] - sx = GBALoad16(&gba->memory.d, offset, 0) / 256.f; - sy = GBALoad16(&gba->memory.d, offset + 2, 0) / 256.f; - theta = (GBALoadU16(&gba->memory.d, offset + 4, 0) >> 8) / 128.f * M_PI; + sx = gba->memory.d.load16(&gba->memory.d, offset, 0) / 256.f; + sy = gba->memory.d.load16(&gba->memory.d, offset + 2, 0) / 256.f; + theta = (gba->memory.d.loadU16(&gba->memory.d, offset + 4, 0) >> 8) / 128.f * M_PI; offset += 6; // Rotation a = d = cosf(theta); @@ -147,16 +147,16 @@ static void _ObjAffineSet(struct GBA* gba) { b *= -sx; c *= sy; d *= sy; - GBAStore16(&gba->memory.d, destination, a * 256, 0); - GBAStore16(&gba->memory.d, destination + diff, b * 256, 0); - GBAStore16(&gba->memory.d, destination + diff * 2, c * 256, 0); - GBAStore16(&gba->memory.d, destination + diff * 3, d * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination, a * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + diff, b * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + diff * 2, c * 256, 0); + gba->memory.d.store16(&gba->memory.d, destination + diff * 3, d * 256, 0); destination += diff * 4; } } static void _MidiKey2Freq(struct GBA* gba) { - uint32_t key = GBALoad32(&gba->memory.d, gba->cpu.gprs[0] + 4, 0); + uint32_t key = gba->memory.d.load32(&gba->memory.d, gba->cpu.gprs[0] + 4, 0); gba->cpu.gprs[0] = key / powf(2, (180.f - gba->cpu.gprs[1] - gba->cpu.gprs[2] / 256.f) / 12.f); } @@ -264,7 +264,7 @@ void GBASwi32(struct ARMBoard* board, int immediate) { } static void _unLz77(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { - int remaining = (GBALoad32(&memory->d, source, 0) & 0xFFFFFF00) >> 8; + int remaining = (memory->d.load32(&memory->d, source, 0) & 0xFFFFFF00) >> 8; // We assume the signature byte (0x10) is correct int blockheader; uint32_t sPointer = source + 4; @@ -277,7 +277,7 @@ static void _unLz77(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { if (blocksRemaining) { if (blockheader & 0x80) { // Compressed - block = GBALoadU8(&memory->d, sPointer, 0) | (GBALoadU8(&memory->d, sPointer + 1, 0) << 8); + block = memory->d.loadU8(&memory->d, sPointer, 0) | (memory->d.loadU8(&memory->d, sPointer + 1, 0) << 8); sPointer += 2; disp = dPointer - (((block & 0x000F) << 8) | ((block & 0xFF00) >> 8)) - 1; bytes = ((block & 0x00F0) >> 4) + 3; @@ -289,14 +289,14 @@ static void _unLz77(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { } } else { // Uncompressed - *dPointer = GBALoadU8(&memory->d, sPointer++, 0); + *dPointer = memory->d.loadU8(&memory->d, sPointer++, 0); ++dPointer; --remaining; } blockheader <<= 1; --blocksRemaining; } else { - blockheader = GBALoadU8(&memory->d, sPointer++, 0); + blockheader = memory->d.loadU8(&memory->d, sPointer++, 0); blocksRemaining = 8; } } @@ -304,7 +304,7 @@ static void _unLz77(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { static void _unRl(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { source = source & 0xFFFFFFFC; - int remaining = (GBALoad32(&memory->d, source, 0) & 0xFFFFFF00) >> 8; + int remaining = (memory->d.load32(&memory->d, source, 0) & 0xFFFFFF00) >> 8; int padding = (4 - remaining) & 0x3; // We assume the signature byte (0x30) is correct int blockheader; @@ -312,12 +312,12 @@ static void _unRl(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { uint32_t sPointer = source + 4; uint8_t* dPointer = dest; while (remaining > 0) { - blockheader = GBALoadU8(&memory->d, sPointer++, 0); + blockheader = memory->d.loadU8(&memory->d, sPointer++, 0); if (blockheader & 0x80) { // Compressed blockheader &= 0x7F; blockheader += 3; - block = GBALoadU8(&memory->d, sPointer++, 0); + block = memory->d.loadU8(&memory->d, sPointer++, 0); while (blockheader-- && remaining) { --remaining; *dPointer = block; @@ -328,7 +328,7 @@ static void _unRl(struct GBAMemory* memory, uint32_t source, uint8_t* dest) { blockheader++; while (blockheader-- && remaining) { --remaining; - *dPointer = GBALoadU8(&memory->d, sPointer++, 0); + *dPointer = memory->d.loadU8(&memory->d, sPointer++, 0); ++dPointer; } } diff --git a/src/gba/gba-memory.c b/src/gba/gba-memory.c index 733bd87f0..c612d07ac 100644 --- a/src/gba/gba-memory.c +++ b/src/gba/gba-memory.c @@ -663,8 +663,8 @@ void GBAMemoryServiceDMA(struct GBAMemory* memory, int number, struct GBADMA* in source &= 0xFFFFFFFC; dest &= 0xFFFFFFFC; while (wordsRemaining--) { - word = GBALoad32(&memory->d, source, 0); - GBAStore32(&memory->d, dest, word, 0); + word = memory->d.load32(&memory->d, source, 0); + memory->d.store32(&memory->d, dest, word, 0); source += sourceOffset; dest += destOffset; } @@ -673,7 +673,7 @@ void GBAMemoryServiceDMA(struct GBAMemory* memory, int number, struct GBADMA* in if (sourceRegion == REGION_CART2_EX && memory->savedata.type == SAVEDATA_EEPROM) { while (wordsRemaining--) { word = GBASavedataReadEEPROM(&memory->savedata); - GBAStore16(&memory->d, dest, word, 0); + memory->d.store16(&memory->d, dest, word, 0); source += sourceOffset; dest += destOffset; } @@ -682,7 +682,7 @@ void GBAMemoryServiceDMA(struct GBAMemory* memory, int number, struct GBADMA* in GBASavedataInitEEPROM(&memory->savedata); } while (wordsRemaining) { - word = GBALoadU16(&memory->d, source, 0); + word = memory->d.load16(&memory->d, source, 0); GBASavedataWriteEEPROM(&memory->savedata, word, wordsRemaining); source += sourceOffset; dest += destOffset; @@ -690,8 +690,8 @@ void GBAMemoryServiceDMA(struct GBAMemory* memory, int number, struct GBADMA* in } } else { while (wordsRemaining--) { - word = GBALoadU16(&memory->d, source, 0); - GBAStore16(&memory->d, dest, word, 0); + word = memory->d.load16(&memory->d, source, 0); + memory->d.store16(&memory->d, dest, word, 0); source += sourceOffset; dest += destOffset; }