From b35551ddc948be413d179b798a0350eb2202bba8 Mon Sep 17 00:00:00 2001 From: Peter Fors Date: Fri, 5 Dec 2025 09:34:21 +0100 Subject: working --- mknes_sdl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'mknes_sdl.c') diff --git a/mknes_sdl.c b/mknes_sdl.c index 98776b5..f7d94c4 100644 --- a/mknes_sdl.c +++ b/mknes_sdl.c @@ -108,7 +108,15 @@ int main(int argc, char **argv) { init_opcode_lut(); init_opcode_ud_lut(); - struct nes_state *nstate = aligned_alloc(4096, (sizeof(struct nes_state) + 4095) & ~4095); + size_t nstate_size = (sizeof(struct nes_state) + 4095) & ~4095; // Round up to page size + struct nes_state *nstate = mmap(NULL, nstate_size, + PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE | MAP_LOCKED, + -1, 0); + if (nstate == MAP_FAILED) { + perror("mmap nstate failed"); + exit(1); + } #ifdef BENCHMARK // Run benchmark with configurable parameters @@ -354,7 +362,7 @@ int main(int argc, char **argv) { for(int i = 0; i < 4; i++) { free(debug_nt_buffer[i]); } - free(nstate); + munmap(nstate, nstate_size); timer_shutdown(); for(int i = 0; i < 4; i++) { -- cgit v1.2.3