diff options
| -rw-r--r-- | cpu.c | 5 |
1 files changed, 5 insertions, 0 deletions
| @@ -54,6 +54,8 @@ peek(uint16_t addr) | |||
| 54 | fprintf(stderr, "PRG ROG size is not 0x4000 nor 0x8000\n"), exit(1); | 54 | fprintf(stderr, "PRG ROG size is not 0x4000 nor 0x8000\n"), exit(1); |
| 55 | } else if ((addr >= 0x4000 && addr <= 0x4013) || addr == 0x4015 || addr == 0x4017) | 55 | } else if ((addr >= 0x4000 && addr <= 0x4013) || addr == 0x4015 || addr == 0x4017) |
| 56 | return apu_read(addr); | 56 | return apu_read(addr); |
| 57 | else if (addr >= 0x2000 && addr <= 0x3FFF) | ||
| 58 | return ppu_read(addr); | ||
| 57 | else | 59 | else |
| 58 | return memory[addr]; | 60 | return memory[addr]; |
| 59 | } | 61 | } |
| @@ -71,6 +73,9 @@ memwrite(uint16_t addr, uint8_t byte) | |||
| 71 | if (addr >= 0x4000 && addr <= 0x4017) { | 73 | if (addr >= 0x4000 && addr <= 0x4017) { |
| 72 | apu_write(addr, byte); | 74 | apu_write(addr, byte); |
| 73 | return; | 75 | return; |
| 76 | } else if (addr >= 0x2000 && addr <= 0x3FFF) { | ||
| 77 | ppu_write(addr, byte); | ||
| 78 | return; | ||
| 74 | } | 79 | } |
| 75 | 80 | ||
| 76 | MEMORY_MIRROR(addr); | 81 | MEMORY_MIRROR(addr); |
