Repository navigation
v0.0.136
What's Changed
✨ New Features & Emulation (HLE)
- Emulation & Audio
- Emulate the PIU10 YMZ280B and route its output to SDL audio (
b3dcb5e) - Deliver CD playback position to the guest and start track 2 at its true beginning (
5f93b64)
- Emulate the PIU10 YMZ280B and route its output to SDL audio (
- Graphics & Glide
- HLE: Implement Glide Combine and TMU state for full alpha and texture accuracy (
3047b5c) - Implement Glide line drawing and cull modes (
2a9456a) - Implement safe
GlideGateIdO(1) switch dispatch and complete Glide API family (73a3122)
- HLE: Implement Glide Combine and TMU state for full alpha and texture accuracy (
- Target Bring-up
- Add
pumpit2multisession CHD profile and handle unresolved AOT-DBT direct edges (919ff28) - Bring up the
pumpit3target through five HLE gaps to its render loop (211cbfc)
- Add
- Execution & AOT
- Add AOT-DBT execution and improve SDL host lifecycle (
84797bf) - Implement Port I/O AOT Fast-Path and Opcode-directed HLE Dispatcher (
62c89f8) - Native region execution foundation: diagnose single-step wall, prove the interception mechanism (
0c7a5ba) - Translate AOT segment instructions natively, removing the dominant segmentation exception cost (
61d04ae)
- Add AOT-DBT execution and improve SDL host lifecycle (
⚡ Performance & Optimization
- AOT & Execution Speed
- Translate from the live guest arena and cut append cost 10.5x (
3552db7) - Unblock the post-HLE return path and raise the frame rate 2.19x (
e2f6563) - Move the performance baseline to Release and raise the frame rate 5.8x (
c1087b4) - Harden AOT-DBT dispatch and enable native linear spans (
d790ab7) - Reduce AOT-DBT single-step overhead safely (
fa73415) - Add guarded AOT segment-pop fast path (
18540db) - Improve AOT fallback performance and diagnostics (
e67a9e7) - Improve AOT caching and native execution coverage (
fc7ddba) - Attribute whole-run execution time and remove the AOT lookup bottleneck (
f687886) - Drop the redundant per-gate pump rendezvous (
a2982d9) - Re-baseline the cost profile and cut the Glide rendezvous latency (
6101dbe) - Optimize Music Select execution boundaries (
672e343)
- Translate from the live guest arena and cut append cost 10.5x (
- System & I/O
- Keep DOS file handles open across reads (Task 374) (
4760c19) - Replace Glide GL error polling and find the display limit (Tasks 369-371) (
8bf7d52)
- Keep DOS file handles open across reads (Task 374) (
🐛 Bug Fixes
- Graphics (Glide)
- Fix the corrupted 3D model by connecting Glide vertex depth (
6ab688a) - Fix Glide LFB rendering and stabilize Win32 AOT execution (
ea609ba) - Fix Glide background, fog, and LFB rendering (
bd5a5c4) - Draw Glide sprites at the right scale and color, and implement grHints (
9bcba7b) - Harden Glide gates and report implementation gaps (
7c758b0)
- Fix the corrupted 3D model by connecting Glide vertex depth (
- System & Inputs
- Fix the note and background animation (BGA) jumping by preserving owed timer ticks (
e341c8f) - Fix guest timer delivery and honor PIT cadence (
b18e54a) - Fix the
pumpit3startup stall and add the instruments that found it (280ed28) - Fix JAMMA system and P2 keypad mappings (
dc8852f) - Classify AOT-DBT RET fallbacks by exclusive cause and fix the next DBT target (
f815d2e)
- Fix the note and background animation (BGA) jumping by preserving owed timer ticks (
🔍 Profiling & Analysis
- Bottleneck Identification
- Find
pumpit3's real input cost and bound it with a snapshot (cc21627) - Locate
pumpit3's dominant cost in one port I/O instruction (8d9b365) - Reproduce the
pumpit3startup stall and rule out its two obvious causes (f78b895) - Locate the dynamic translation bottleneck in the full-arena snapshot (
79691a2) - Instrument AOT boundary exits and pin the root cause to segmentation instructions (
c4885c3)
- Find
- Cost Attribution & Profiling
- Attribute
pumpit3arena execution and record the next ten steps (458efdd) - Attribute every VEH exit and settle who consumes the arena-entry single step (
d789786) - Measure the kernel exception round trip and scope the next axis (Tasks 372-373) (
d1155a3) - Attribute and act on the Glide/exception axis (Tasks 364-368) (
3ab6a1b) - Attribute execution cost down to dynamic translation on the worker thread (
47e1b96) - Profile Release execution and Glide bottlenecks (
2e502e3) - Record aot-dynamic being 14.6x slower than legacy as the next task (
c15c362)
- Attribute
- Investigations & Diagnostics
- Instrument the CD audio path and trace the stall to our own watchdog (
7583fde) - Disprove the hidden single-step population and retract 6.5% (Task 376) (
99d7016) - Settle the texture suspicion with a census and pixel dump (Task 375) (
206d414)
- Instrument the CD audio path and trace the stall to our own watchdog (
🛠 Chore, Refactoring & CI/CD
- Refactoring
- Migrate window and CD audio services to SDL3 (
26f28fd) - Consolidate the execution backends to legacy and dynamic (
78366f8)
- Migrate window and CD audio services to SDL3 (
- CI/CD & Testing
- Add tag-triggered build verification and release artifacts on GitHub Actions (
c6e9117) - Require a version tag on every main merge (
35842b6) - Require completion in the OpenWatcom sample pass criterion (
3b5073c) - Refresh the OpenWatcom sample baseline to v0.0.133 (
2038829)
- Add tag-triggered build verification and release artifacts on GitHub Actions (
- Configuration & Documentation
- Default execution to dynamic with no time limit, and make source comments English-only (
d78e328) - Attribute plan build and move the performance baseline to Release (
dcd8937) - Document Glide call-volume performance plan (
609d77d) - Record the GLSL shader review and the Task 377 direction (
0e49182) - Record next optimization frontier: multi-slot indirect inline cache (
b3e7fa2) - Add the post on tracing note jumping to lost timer ticks (
a19360e)
- Default execution to dynamic with no time limit, and make source comments English-only (
Full Changelog: v0.0.81...v0.0.136