struct MBC3 : MMIO { bool ram_enable; //$0000-1fff uint8 rom_select; //$2000-3fff uint8 ram_select; //$4000-5fff bool rtc_latch; //$6000-7fff bool rtc_halt; unsigned rtc_second; unsigned rtc_minute; unsigned rtc_hour; unsigned rtc_day; bool rtc_day_carry; unsigned rtc_latch_second; unsigned rtc_latch_minute; unsigned rtc_latch_hour; unsigned rtc_latch_day; unsigned rtc_latch_day_carry; void second(); uint8 mmio_read(uint16 addr); void mmio_write(uint16 addr, uint8 data); void power(); } mbc3;