Oliodh/Ochip
51.6
Weak · 20 September 2026
1.8k
lines of production code
VB.NET
primary language
1
measurement over time
What this system is
This system is a Windows Forms application built on .NET 10 that provides emulation capabilities for retro computing systems. It currently supports the CHIP-8 interpreter and the Nintendo Entertainment System (NES), allowing users to load and run ROMs for both platforms. The application manages distinct rendering buffers and input mappings for each emulator, though NES support is currently limited to CPU, PPU, and memory management without sound or advanced graphics features.
Features
Add NES emulation support to the Ochip emulator
The Ochip emulator now supports Nintendo Entertainment System (NES) games in addition to its existing CHIP-8 and Super-CHIP capabilities. This update introduces a full 6502 CPU implementation, a Picture Processing Unit (PPU) for background rendering, and memory management for iNES format ROMs. The application automatically detects NES ROMs by file extension, resizes the window to 256x240 pixels, and maps keyboard inputs to NES controller buttons. Note that sprite rendering, scrolling, and sound (APU) are not yet implemented.
(repo-wide) · high confidence
Introduce NES emulation alongside CHIP-8
The WinForms application now supports two distinct emulation targets: the original CHIP-8 interpreter and the Nintendo Entertainment System (NES). This change adds a new NES emulator implementation (including 6502 CPU, PPU, and memory management) and updates the main form to switch between CHIP-8 and NES modes. Users can now load NES ROMs and use a mapped controller layout (e.g., X/Z for A/B, arrows for D-pad) in addition to the existing CHIP-8 key bindings. The UI includes a 'Choose ROM' button to load software for the currently selected emulator, and the rendering logic handles separate display buffers and scaling for both 64x32/128x64 (CHIP-8) and 256x240 (NES) resolutions.
WinFormsApp16 · high confidence
Dependencies
Initial project setup for WinForms application targeting .NET 10
Added the project file (WinFormsApp16.vbproj) for a new Windows Forms application. The project is configured to target the net10.0-windows framework and enables Windows Forms support. It sets the output type to a Windows executable and includes standard imports for System.Data, System.Drawing, and System.Windows.Forms.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 52.
Lenses
- Code Health 78
- Architecture 100
- Maturity 48
- Readiness 36
- Security 80
Changes since last survey
- 79 commits — 49 feature/other, 30 fixes
By area
- (repo) — 32 commits
- WinFormsApp16/NES.vb — 17 commits
- WinFormsApp16/Form1.vb — 9 commits
- WinFormsApp16/Chip8.vb — 8 commits
- (root) — 7 commits
- .github/workflows — 3 commits
- WinFormsApp16/Form1.Designer.vb — 2 commits
- WinFormsApp16/My Project — 1 commit
Notable commits
- fix: Add bounds checking for ROM loading and fix resource disposal
- fix: Fix JSR/RTS instruction implementation: correct PC increment and stack pop order
- fix: Fix NES ROM crash by handling trainer flag in iNES header
- fix: Fix PPUADDR register logic and update palette comment
- fix: Fix ScrollDown bounds check to allow full-height scrolling
- fix: Fix arithmetic overflow in Branch method when handling negative offsets
- fix: Fix arithmetic overflow in CPU6502 Push and Pop methods
- fix: Fix blinking paddles by removing synchronous Update() call
- fix: Fix code review issues in CPU instructions
- fix: Fix code review issues: 6502 JSR/RTS bug, optimize rendering, improve code clarity
- fix: Fix exit flag and add bounds checks to scrolling functions
- fix: Fix interrupt vector addresses in CPU
- fix: Fix overflow exception in Branch function by handling signed offset arithmetic properly
- fix: Fix paddle flickering by forcing synchronous screen updates
- fix: Fix sprite blinking by implementing bitmap-based rendering for CHIP-8
- fix: Fix sprite clipping in CHIP-8 DRW instruction
- fix: Fix sprite drawing for DXY0 in low-res mode
- fix: Fix stack pointer overflow in NES CPU Push/Pop methods
- fix: Implement basic NES PPU rendering to fix black screen issue
- fix: Merge pull request #12 from Oliodh/copilot/fix-nes-crash-issue
- …and 59 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Oliodh/Ochip was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit e36d0007f1e40724bd69f7ec6c6944e267bf95de — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.