diff --git a/src/memory.c b/src/memory.c index e1d11f2..66b6dcc 100644 --- a/src/memory.c +++ b/src/memory.c @@ -23,4 +23,3 @@ const Serdes_Item nes_memory_serdes[] = { {"SMEM", offsetof(nes_Memory, input), &serdes_mem, (void*)(sizeof(nes_Memory) - offsetof(nes_Memory, input))}, {0}, }; - diff --git a/src/ppu.c b/src/ppu.c index 704049d..6a5227d 100644 --- a/src/ppu.c +++ b/src/ppu.c @@ -365,52 +365,14 @@ void nes_ppu_render_line(nes_PPU* ppu, nes_PPU_Memory* mem) { } } -/* -static int nes_ppu_chr_ram_size(const void* _ppu, const void*) { - const nes_PPU_Memory* ppu = (const nes_PPU_Memory*)_ppu; - return (ppu->chr_ram ? - ppu->n_chr_banks * NES_CHR_ROM_PAGE_SIZE : - 0); -} - -static int nes_ppu_read_chr_ram(void* dst, const void* src, - int avail, const void*) { - int size = 0; - nes_PPU_Memory* ppu = (nes_PPU_Memory*)dst; - if (ppu->chr_ram) { - size = ppu->n_chr_banks * NES_CHR_ROM_PAGE_SIZE; - if (size > avail) size = avail; - memcpy(ppu->chr_ram, src, size); - } - return size; -} - -static int nes_ppu_write_chr_ram(void* dst, const void* src, - int avail, const void*) { - int size = 0; - const nes_PPU_Memory* ppu = (const nes_PPU_Memory*)src; - if (ppu->chr_ram) { - size = ppu->n_chr_banks * NES_CHR_ROM_PAGE_SIZE; - if (size > avail) size = avail; - memcpy(dst, ppu->chr_ram, size); - } - return size; -} - -static const Serdes_IO ppu_serdes_io = { - .read = nes_ppu_read_chr_ram, - .write = nes_ppu_write_chr_ram, - .in_size = nes_ppu_chr_ram_size, - .out_size = nes_ppu_chr_ram_size, -}; -*/ static void* ppu_chr_ram_ptr(const void* _ppu) { return ((nes_PPU_Memory*)_ppu)->chr_ram; } static size_t ppu_chr_ram_size(const void* _ppu) { - return ((nes_PPU_Memory*)_ppu)->n_chr_banks * NES_CHR_ROM_PAGE_SIZE; + return ((nes_PPU_Memory*)_ppu)->n_chr_banks * + NES_CHR_ROM_PAGE_SIZE; } static Serdes_Ptr_Ref ppu_chr_ram_ref = { diff --git a/src/save.c b/src/save.c index 251e9a1..daa7ccf 100644 --- a/src/save.c +++ b/src/save.c @@ -111,12 +111,8 @@ int load_state(nes* sys, const char* cart_filename) { FILE* file = fopen(state_filename, "rb"); if (NULL != file) { -// int expected_size = state_size(sys); - fseek(file, 0L, SEEK_END); int file_size = ftell(file); -// rewind(file); -// if (max_size < size) size = max_size; void* mem = nese_map_file(file, file_size, Filemap_Mode_Read); diff --git a/src/serdes.c b/src/serdes.c index 666e026..4deddfa 100644 --- a/src/serdes.c +++ b/src/serdes.c @@ -97,7 +97,7 @@ static int serdes_rle_in(void* dst, const void* src, int avail, int src_size = rle_encoded_size_for(src, avail, dst_size); if (src_size > avail || src_size < 0) return 0; int decoded = rle_decode(dst, dst_size, src, src_size); - return (decoded >= 0 ? decoded : 0); + return (decoded == src_size ? decoded : 0); } static int serdes_rle_out(void* dst, const void* src, int avail,