struct mapper_004_0 { uint8_t *prg_banks[4]; // 8kb banks at $8000, $a000, $c000, $e000 uint8_t *chr_banks[8]; // 1kb banks at $0000-$1fff uint8_t bank_select; uint8_t bank_registers[8]; uint8_t mirroring; uint8_t irq_latch; uint8_t irq_counter; uint8_t irq_reload; uint8_t irq_enabled; uint8_t last_a12; } __attribute__((packed, aligned(64)));