summaryrefslogtreecommitdiff
path: root/mapper_nrom.c
diff options
context:
space:
mode:
Diffstat (limited to 'mapper_nrom.c')
-rw-r--r--mapper_nrom.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/mapper_nrom.c b/mapper_nrom.c
index 425db31..f618211 100644
--- a/mapper_nrom.c
+++ b/mapper_nrom.c
@@ -1,27 +1,30 @@
-static void mapper_nrom_init(struct state *state) {
+static void mapper_nrom_init(struct nes_state *state) {
// Nothing to initialize for NROM
}
-static uint8_t mapper_nrom_read(struct state *state, uint16_t addr) {
+static uint8_t mapper_nrom_read(struct nes_state *state, uint32_t addr) {
uint32_t prg_size = state->ines.prg_size;
- if(state->ines.prg_size == 16384) {
- return state->rom[addr & 0x3fff];
- } else {
- return state->rom[addr - 0x8000];
- }
- return 0;
+ uint32_t mask = (state->ines.prg_size == 16384) ? 0x3fff : 0x7fff;
+ return state->rom[addr & mask];
+
+ // if(state->ines.prg_size == 16384) {
+ // return state->rom[addr & 0x3fff];
+ // } else {
+ // return state->rom[addr - 0x8000];
+ // }
+ // return 0;
}
-static void mapper_nrom_write(struct state *state, uint16_t addr, uint8_t value) {
+static void mapper_nrom_write(struct nes_state *state, uint32_t addr, uint8_t value) {
(void)state;
(void)addr;
(void)value;
}
-static void mapper_nrom_tick(struct state *state) {
+static void mapper_nrom_tick(struct nes_state *state) {
(void)state;
}