all repos — mgba @ 9ac6f6d3bfe2566c2e5960f5f9b6167d8e0a4ae9

mGBA Game Boy Advance Emulator

src/gba/gba-io.c (view raw)

 1#include "gba-io.h"
 2
 3#include "gba-video.h"
 4
 5void GBAIOWrite(struct GBA* gba, uint32_t address, uint16_t value) {
 6	switch (address) {
 7	case REG_DISPSTAT:
 8		GBAVideoWriteDISPSTAT(&gba->video, value);
 9		break;
10	case REG_WAITCNT:
11		GBAAdjustWaitstates(&gba->memory, value);
12		break;
13	default:
14		GBALog(GBA_LOG_STUB, "Stub I/O register write: %03x", address);
15		break;
16	}
17	gba->memory.io[address >> 1] = value;
18}
19
20uint16_t GBAIORead(struct GBA* gba, uint32_t address) {
21	switch (address) {
22	case REG_DISPSTAT:
23		return GBAVideoReadDISPSTAT(&gba->video);
24		break;
25	case REG_WAITCNT:
26		// Handled transparently by registers
27		break;
28	default:
29		GBALog(GBA_LOG_STUB, "Stub I/O register read: %03x", address);
30		break;
31	}
32	return gba->memory.io[address >> 1];
33}