Explorar o código

fix: nes_cpu.prg_banks存在数组越界, -Werror=array-bounds

Wendal Chen hai 1 ano
pai
achega
c365ee4cd5
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      components/nes/src/nes_cpu.c

+ 1 - 1
components/nes/src/nes_cpu.c

@@ -100,7 +100,7 @@ static inline const uint8_t* nes_get_dma_address(nes_t* nes,uint8_t data) {
     //     return famicom->save_ram + ((uint16_t)(data & 0x1f) << 8);
     case 4: case 5: case 6: case 7:
         // 高一位为1, [$8000, $10000) 程序PRG-ROM区
-        return nes->nes_cpu.prg_banks[data >> 4] + ((uint16_t)(data & 0x0f) << 8);
+        return nes->nes_cpu.prg_banks[(data >> 4) & 0x3] + ((uint16_t)(data & 0x0f) << 8);
     }
 }