static uint8_t mapper_000_0_prg_rom_read(struct nes_state *state, uint32_t addr) { struct mapper_000_0 *mapper = &state->mapper_data.m000_0; return state->prg_rom[addr & mapper->mask]; } static uint8_t mapper_000_0_chr_read(struct nes_state *state, uint32_t addr) { return state->chr_rom[addr]; } static void mapper_000_0_init(struct nes_state *state) { struct mapper_000_0 *mapper = &state->mapper_data.m000_0; state->mapper_function.prg_rom_read = mapper_000_0_prg_rom_read; state->mapper_function.chr_read = mapper_000_0_chr_read; mapper->mask = (state->ines.prg_size == 16384) ? 0x3fff : 0x7fff; }