diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-12-05 09:34:21 +0100 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-12-05 09:34:21 +0100 |
| commit | b35551ddc948be413d179b798a0350eb2202bba8 (patch) | |
| tree | 508499b149c4aa147311c0993c061939f5b90ab6 /mknes_sdl.c | |
| parent | d1e416e8657521c77a929bab0dae819e51928088 (diff) | |
Diffstat (limited to 'mknes_sdl.c')
| -rw-r--r-- | mknes_sdl.c | 12 |
1 files changed, 10 insertions, 2 deletions
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++) { |
