From bcbcea5d151d98d45e48e2c602af60a0c7ea7f3d Mon Sep 17 00:00:00 2001 From: Lauchmelder Date: Sat, 30 Oct 2021 22:55:21 +0200 Subject: [PATCH] fixed nametable prerender bug --- NES Emulator/bus.c | 2 +- NES Emulator/mappers/mapper000.c | 2 +- NES Emulator/ppu.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/NES Emulator/bus.c b/NES Emulator/bus.c index afe7fe3..ccc4784 100644 --- a/NES Emulator/bus.c +++ b/NES Emulator/bus.c @@ -34,7 +34,7 @@ struct Bus* createBus(SDL_Renderer* renderer) memset(bus->ram, 0x00, 0x18); // Create and insert cartridge - bus->cartridge = createCartridge(bus, "roms/nestest.nes"); + bus->cartridge = createCartridge(bus, "roms/donkeykong.nes"); // Create CPU and attach it bus->cpu = createCPU(bus); diff --git a/NES Emulator/mappers/mapper000.c b/NES Emulator/mappers/mapper000.c index 6cbc909..f7012e7 100644 --- a/NES Emulator/mappers/mapper000.c +++ b/NES Emulator/mappers/mapper000.c @@ -104,6 +104,6 @@ void Mapper000_GetPatternTableTexture(void* mapper, SDL_Texture* texture, int in int pitch; void* pixels; SDL_LockTexture(texture, NULL, &pixels, &pitch); - SDL_memcpy(pixels, sMapper->chr_rom + 0x1000 * index, 0x1000); + SDL_memcpy(pixels, sMapper->chr_rom + (size_t)0x1000 * index, 0x1000); SDL_UnlockTexture(texture); } diff --git a/NES Emulator/ppu.c b/NES Emulator/ppu.c index 4e20927..2756e34 100644 --- a/NES Emulator/ppu.c +++ b/NES Emulator/ppu.c @@ -357,12 +357,12 @@ SDL_Texture* getRenderedNameTableTexture(struct PPU* ppu, int index) struct Pixel* pixels; SDL_LockTexture(target, NULL, (void**)&pixels, &pitch); - Byte patternTable = 0x1000 * ppu->ppuCtrl.bgTile; + Word patternTable = 0x1000 * ppu->ppuCtrl.bgTile; for (int y = 0; y < 30; y++) { for (int x = 0; x < 32; x++) { - Byte offset = ppu->nameTables[index][y * 32 + x]; + Byte offset = ppu->nameTables[index][(size_t)y * 32 + x]; for (int row = 0; row < 8; row++) {