@@ -6,19 +6,28 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
66
77RustyNES is a next-generation Nintendo Entertainment System (NES) emulator written in Rust. Target: 100% TASVideos accuracy test pass rate, 300+ mappers, RetroAchievements, GGPO netplay, TAS tools, Lua scripting.
88
9- ** Status:** v0.7.1 - Phase 1.5 Stabilization In Progress (M7-M8 Complete). All Phase 1 milestones (M1-M6) done.
9+ ** Status:** v0.8.0 - Phase 1.5 Stabilization In Progress (M7-M8 Complete, M9-M10 Planned ). All Phase 1 milestones (M1-M6) done.
1010
11- ** Test Status:** 500 + tests passing (0 failures, 0 ignored). 100% Blargg pass rate (90/90 tests)
11+ ** Test Status:** 508 + tests passing (0 failures, 0 ignored). 100% Blargg pass rate (90/90 tests)
1212
13- ** Current Version:** v0.7.1 (December 27, 2025)
14- - Desktop GUI framework migration: Iced+wgpu to eframe+egui
15- - eframe 0.29 + egui 0.29 immediate mode GUI
13+ ** Current Version:** v0.8.0 (December 28, 2025)
14+ - Rust 2024 Edition adoption (MSRV 1.88)
15+ - Comprehensive dependency modernization
16+ - eframe 0.33 + egui 0.33 immediate mode GUI
1617- OpenGL rendering via glow backend (replacing wgpu shader pipeline)
17- - cpal 0.15 for low-latency audio with lock-free ring buffer (8192 samples)
18+ - cpal 0.16 for low-latency audio with lock-free ring buffer (8192 samples)
19+ - Audio resampling via rubato 0.16 for flexible sample rate support
1820- Native file dialogs with rfd 0.15
1921- Gamepad support with gilrs 0.11 (hotplug detection)
20- - Configuration persistence with ron 0.8 format
22+ - Configuration persistence with ron 0.12 format
2123- Debug windows: CPU, PPU, APU, Memory viewers
24+ - Performance optimizations: inline hints, buffer reuse patterns
25+
26+ ** Previous Version:** v0.7.1 (December 27, 2025)
27+ - Desktop GUI framework migration: Iced+wgpu to eframe+egui
28+ - eframe 0.29 + egui 0.29 immediate mode GUI
29+ - cpal 0.15 for low-latency audio
30+ - Configuration persistence with ron 0.8 format
2231
2332** Previous Version:** v0.6.0 (December 20, 2025)
2433- M7: Accuracy Improvements complete (all 4 sprints)
@@ -194,12 +203,13 @@ Cloned emulators for study and pattern reference:
194203
195204## Key Dependencies
196205
197- - ** Graphics** : ` eframe ` 0.29 (egui + window + OpenGL via glow)
198- - ** GUI** : ` egui ` 0.29 (immediate mode GUI)
199- - ** Audio** : ` cpal ` 0.15 (cross-platform audio I/O with lock-free ring buffer)
206+ - ** Graphics** : ` eframe ` 0.33 (egui + window + OpenGL via glow)
207+ - ** GUI** : ` egui ` 0.33 (immediate mode GUI)
208+ - ** Audio** : ` cpal ` 0.16 (cross-platform audio I/O with lock-free ring buffer)
209+ - ** Resampling** : ` rubato ` 0.16 (high-quality audio resampling)
200210- ** Input** : ` gilrs ` 0.11 (gamepad support with hotplug detection)
201211- ** File Dialogs** : ` rfd ` 0.15 (native cross-platform file dialogs)
202- - ** Configuration** : ` ron ` 0.8 (Rust Object Notation), ` directories ` 5.0 (platform paths)
212+ - ** Configuration** : ` ron ` 0.12 (Rust Object Notation), ` directories ` 5.0 (platform paths)
203213- ** CLI** : ` clap ` 4.5 (argument parsing)
204214- ** Netplay** : ` backroll ` (GGPO rollback) - planned for Phase 2
205215- ** Scripting** : ` mlua ` (Lua 5.4) - planned for Phase 2
@@ -209,8 +219,9 @@ Cloned emulators for study and pattern reference:
209219
210220## Architectural Decisions
211221
212- ### GUI Framework: eframe + egui (v0.7.1+)
222+ ### GUI Framework: eframe + egui (v0.7.1+, upgraded v0.8.0 )
213223- ** Changed from** : Iced+wgpu (v0.5.0-v0.6.0)
224+ - ** Current** : eframe 0.33 + egui 0.33 (as of v0.8.0)
214225- ** Rationale** : Immediate mode GUI ideal for debug windows, simpler event loop, better game loop integration, integrated window management
215226- ** Implementation** : eframe provides window + egui + OpenGL rendering; egui for menus/debug windows
216227
@@ -222,10 +233,11 @@ Cloned emulators for study and pattern reference:
222233- ** Rationale** : Direct integration with egui, efficient texture updates via OpenGL
223234- ** Implementation** : 256x240 RGBA buffer with nearest-neighbor scaling via egui::Image
224235
225- ### Audio Backend: cpal 0.15
236+ ### Audio Backend: cpal 0.16 (upgraded v0.8.0)
226237- ** Chosen over** : SDL2, rodio
227238- ** Rationale** : Cross-platform, low-latency, direct device access, no runtime dependencies
228239- ** Implementation** : Lock-free ring buffer (8192 samples) with atomic operations
240+ - ** Resampling** : rubato 0.16 for high-quality sample rate conversion
229241
230242### Configuration: RON Format
231243- ** Chosen over** : TOML, JSON
@@ -262,16 +274,43 @@ Cloned emulators for study and pattern reference:
262274| ** M7: Accuracy** | ✅ v0.6.0 | CPU/PPU/APU timing, OAM DMA precision, hardware mixer |
263275| ** M8: Test ROMs** | ✅ v0.7.0 | 100% Blargg pass rate (90/90 tests) |
264276| ** GUI Migration** | ✅ v0.7.1 | eframe + egui desktop reimplementation |
277+ | ** Dependency Upgrade** | ✅ v0.8.0 | Rust 2024, eframe 0.33, egui 0.33, cpal 0.16, ron 0.12 |
265278| ** M9-10: Phase 1.5** | 🔄 PLANNED | Known issues resolution, polish, documentation |
266279| ** Phase 2+** | 📋 TBD | Advanced features |
267280
268- ## Recent Accomplishments (v0.7.1 - Dec 27, 2025)
281+ ## Recent Accomplishments (v0.8.0 - Dec 28, 2025)
282+
283+ ### Comprehensive Dependency Modernization
284+
285+ Complete modernization of the technology stack for long-term maintainability:
286+
287+ #### Rust 2024 Edition & MSRV 1.88
288+ - Adopted Rust 2024 Edition with latest language features
289+ - MSRV set to Rust 1.88 for latest stable compiler support
290+ - Updated all workspace and crate configurations
291+
292+ #### Dependency Upgrades
293+ - ** eframe** 0.33 (from 0.29): Latest egui integration
294+ - ** egui** 0.33 (from 0.29): Improved widget system
295+ - ** cpal** 0.16 (from 0.15): Audio device improvements
296+ - ** rubato** 0.16: High-quality audio resampling
297+ - ** ron** 0.12 (from 0.8): Configuration format improvements
298+ - ** thiserror** 2.0: Error handling modernization
299+
300+ #### Performance Optimizations
301+ - Added ` #[inline] ` hints on critical audio/rendering paths
302+ - Buffer reuse patterns for reduced allocations
303+ - PPU edge case handling improvements
304+
305+ ---
306+
307+ ## Previous Accomplishments (v0.7.1 - Dec 27, 2025)
269308
270309### Desktop GUI Framework Migration
271310
272311Complete rewrite of the desktop frontend from Iced+wgpu to eframe+egui:
273312
274- #### New Architecture
313+ #### Architecture
275314- ** eframe** 0.29 for window management + OpenGL rendering via glow
276315- ** egui** 0.29 immediate mode GUI for menus and debug windows
277316- ** cpal** 0.15 for low-latency audio with lock-free ring buffer
@@ -405,8 +444,8 @@ pub trait Mapper: Send {
405444
406445### Rust Conventions
407446
408- - ** Edition** : Rust 2021
409- - ** MSRV** : 1.75+ (for async traits in std )
447+ - ** Edition** : Rust 2024
448+ - ** MSRV** : 1.88 (for Rust 2024 Edition support )
410449- ** Format** : ` rustfmt ` with default settings
411450- ** Lints** : ` clippy::pedantic ` + ` -D warnings `
412451- ** Unsafe** : Only permitted in FFI (rcheevos) and platform-specific audio; must be documented
0 commit comments