Перейти к содержимому

GimixNES Emulator gameplay - written in FreeBASIC; freeware with source code included.

salvotnt1

0:00 / 0:00

GimixNES Emulator gameplay - written in FreeBASIC; freeware with source code included.

68 просмотров · 8 дней назад
salvotnt1
3 подписчика
68 просмотров · 8 дней назад
I'm pleased to announce the public domain release of my NES emulator, GimixNES. It's a project written entirely in FreeBASIC, designed to run on DOS or DOSBox-X. The goal was to create a simple yet functional emulator, with a focus on debugging, useful both for those who want to learn how an NES works and for those who want to play classic games on retro systems. The source code is included and can be freely modified, distributed, and used for any purpose, without any restrictions (public domain). 📦 Description GimixNES emulates the main Nintendo Entertainment System hardware: 6502 CPU (full, no decimal mode) PPU (Picture Processing Unit) with line-scan rendering APU (Audio Processing Unit) with basic channel management (square, triangle, noise, DMC) Standard controller (joystick 1) Mapper 0 (simple NES ROMs, 1 or 2 PRG banks, CHR ROM) VRAM mirroring with fixes for incorrect headers iNES file support (.nes) The emulator generates a debug.log file with detailed information on CPU status, PPU, inputs, and frames, very useful for debugging homebrew ROMs or understanding system behavior. ⚙️ Key Features Full 6502 CPU emulation (all official opcodes) PPU with: Background and sprite rendering Scrolling (registers $2005/$2006) NMI and vblank detection Fixed palette (no ROM loading) APU with audio output (emulation only, no real sound – the code handles registers but does not play audio) Keyboard input (arrows, Z/X, Enter, Shift) Advanced debugging: Log to file (debug.log) D key for immediate state dump T key to toggle CPU trace (if implemented in the debug.bi module) F key to change the frame logging interval R key to reset the console Text-mode GUI? No: Use a graphical window (probably Screen 13 or similar) to view the NES output. 🖥️ Requirements Operating system: Pure DOS (with VESA driver?) or DOSBox / DOSBox-X (recommended) Compiler: FreeBASIC (recent version) if you want to recompile the source code ROM file: iNES (.nes) format, mapper 0, with 1 or 2 PRG banks and CHR ROM (0 or 1 CHR bank). A DOS-compiled executable is sufficient for execution. The project has been tested with DOSBox-X. 🕹️ Usage From the command line: text gnes.exe [path_to_rom.nes] Example: text gnes.exe super_mario_bros.nes While running: ESC – Exits the emulator D – Performs a manual dump to debug.log R – Resets the console T – Enables/disables CPU trace (if supported) F – Changes the logging interval (60 → 10 → 1 frame) Game controls are handled by the input.bi module: arrow keys, Z/X (or A/B) keys, Enter (Start), Shift (Select). See the code for the exact mapping. ⚠️ Known Limitations Supported Mapper: Mapper 0 (NESROM, NROM) only. No support for MMC1, MMC3, etc. Audio: APU registers are emulated, but no sound is produced. Audio emulation is state-level only. PPU: This is not cycle-exact emulation; some timing-critical games may have graphical glitches. CHR RAM: If the ROM does not have CHR ROM (CHR RAM), it is not handled (loading is skipped). Many mapper 0 games use CHR ROM, so this is fine. Sprite 0 hits and other PPU details are not fully implemented. Saves: No support for SRAM batteries. Graphics: The internal resolution is fixed (256x240) and is displayed without interpolation. These limitations are acceptable for an educational project or for playing simple games. 📥 Download The package contains: gnes.exe (DOS executable) gnes.bas and included files (common.bi, cpu.bi, ppu.bi, render.bi, debug.bi, input.bi, apu.bi) README.txt with instructions No ROM files included (for copyright reasons) [Link to the project website and download page] – https://gimix.altervista.org 📜 License This software is released in the public domain (Creative Commons Zero / Unlicense). You can do whatever you want with it: modify, distribute, or use commercially, without attribution (although credit is always appreciated). I make no guarantees. Use at your own risk. More info: on the project's official website you can find more information and a guide that explains in great detail how the emulator works. Come and take a look. There's a downloadable executable and also all the highly commented freebasic sources for you to study and make your own. In progress...