__attribute__((section(".mapper_000_0"))) static uint8_t mapper_000_0_prg_read(struct nes_state *state, uint32_t addr) { struct mapper_000_0 *mapper = (struct mapper_000_0 *)&state->map; return state->prg_rom[addr & mapper->mask]; } __attribute__((section(".mapper_000_0"))) static uint8_t mapper_000_0_chr_read(struct nes_state *state, uint32_t addr) { return state->chr_rom[addr]; } __attribute__((section(".mapper_000_0"))) static void mapper_000_0_init(struct nes_state *state) { struct mapper_000_0 *mapper = (struct mapper_000_0 *)&state->map; state->mapper.prg_read = mapper_000_0_prg_read; state->mapper.chr_read = mapper_000_0_chr_read; mapper->mask = (state->ines.prg_size == 16384) ? 0x3fff : 0x7fff; }