Repository navigation
Releases
Noble Archimedes v0.9.5b - Advanced graphics and camera fixes
-
Fix a black screen after Continue on a 4K display at 200% render scale with DLSS. The renderer now limits DLSS supersampling to 4K or the output height, whichever is greater.
-
Keep the original Noble Archimedes Windows launcher, with its artwork, fonts, colors and music.
-
Give first-person view more clearance near enemies. Route Classic mouse motion through the original orbit camera and fix right-stick inversion at full deflection.
-
Ship the advanced Windows renderer with HDR, ambient occlusion, temporal anti-aliasing, texture material maps and DXR options. Optional NVIDIA features require a compatible GPU and vendor runtime.
-
Include native Linux preview build instructions and a Steam Deck packaging path in the source release.
-
Make first-person movement follow the mouse view immediately, including after a quick turn in the opposite direction.
-
Show a region picker next to Play when both the USA and European game copies and their matching executables are available.
-
Add optional sprint on Left Shift or L3 with matching movement animation, and optional PS2 analog stick response.
-
Add widescreen HUD placement with special handling for lock-on, boss bars and modal overlays. Use 16:10 presentation on narrower widescreen outputs.
-
Add field of view, draw distance and fog options. Keep the original movie framing by default and support player-supplied HD movie packs.
-
Add controller shoulder navigation in Settings, live button layout changes and improved dual-motor rumble handling.
Download the Windows x64 ZIP, extract it to a writable folder, and run NobleArchimedesLauncher.exe. Supply your own USA original Xbox disc image or extracted files. The first launch compiles the game locally.
Optional NVIDIA features require a separately installed Streamline runtime. The source archive includes the Linux and Steam Deck preview build instructions. See SHA256SUMS.txt to verify both downloads.
Noble Archimedes Beta 0.9.4b - First-Person Camera and Mouse Reticle
First person follows Hector's current position while running, keeping the eye ahead of his head. Looking up or down rotates the view without shifting the eye position.
The system arrow stays hidden inside the game window. A small centered dot appears only when gameplay captures the mouse. Press F6 to release or recapture it.
Validated the first-person camera in a headless courtyard run and passed the camera math, input integration, and release packaging checks.
Download the Windows x64 ZIP and supply your own USA original Xbox copy of Castlevania: Curse of Darkness. The game compiles locally on first run. Corresponding source and SHA-256 checksums are attached.
Noble Archimedes Beta 0.9.3b - Graphics Hotfix
This beta changes how the Xbox renderer copies the completed frame to address the stretched streaks reported on the title screen and during gameplay.
- The final frame copy uses screen pixel coordinates. HD texture packs continue to load through the existing texture path.
- The cursor hides during captured mouse look and returns when capture is released.
- Invert camera stick Y reverses up and down on the right stick. Invert camera stick X is also available, and mouse inversion is configured separately. Both stick settings carry forward from v0.9.2b.
The shader regression passed. Headless RTX 3080 testing covered the title screen and first courtyard at 4K display settings and 200% render scale, with a synthetic HD replacement loaded on the title screen. Confirmation on the reported Radeon RX setup is pending.
Download the Windows x64 ZIP and supply your own USA original Xbox copy of Castlevania: Curse of Darkness. The game compiles locally on first run. Corresponding source and SHA-256 checksums are attached.
Noble Archimedes Beta 0.9.2b - Cursor and Camera Stick Fixes
Noble Archimedes Beta 0.9.2b fixes two modern-control issues from 0.9.1b.
- The captured mouse cursor is now re-hidden every frame and the normal arrow restored when capture is released, so it no longer stays visible in the middle of the screen.
- Added default-on "Invert camera stick X" and "Invert camera stick Y" options to correct the title's inverted controller camera. They work in Classic and direct-look modes and are independent of mouse inversion.
Validation: clean full build, new-game cvtest 7/7, and the packaged runtime ZIP passed 9/9 installation/startup/gameplay checks outside the source tree, including first-run game-DLL compilation.
USA original Xbox is the qualified target. The EU build remains unqualified. Bring your own game files. The companion source archive and SHA-256 checksums are attached.
Noble Archimedes Beta 0.9.1b - Modern PC Controls
Noble Archimedes Beta 0.9.1b adds modern PC controls to the primary Xbox D3D12 build.
- Direct relative mouse look with automatic capture, F6 release/recapture, and cursor restore on exit.
- Resident Evil 2 Remake-style over-the-shoulder camera (default), first-person camera, and Classic mode. F5 cycles; F10 opens the Camera tab.
- Movement follows the camera heading, so W goes where the mouse points. The title's own follow camera is steered to the same heading and retains its collision and scripted transitions.
- Right mouse aims with a slower walk and closer camera; left/middle/mouse 4/5 add X, Y, black and white buttons.
- Camera and mouse settings persist in castlevania.toml.
- Scripted CV_PAD_SCRIPT/CV_PAD_LIVE runs remain deterministic.
Validation for this build: new-game cvtest 7/7 steps, modern camera math and integration tests pass, and the packaged runtime ZIP passed 9/9 installation/startup/gameplay checks outside the source tree, including first-run game-DLL compilation.
USA original Xbox is the qualified target. The EU build remains unqualified. Bring your own game files. The companion source archive and SHA-256 checksums are attached.
Noble Archimedes 0.9.0b - Xbox beta
Noble Archimedes v0.9.0b
Xbox-first Windows x64 beta for Castlevania: Curse of Darkness. Bring your own game: no disc images, extracted assets, generated game DLL or commercial game code are bundled.
Downloads and play
- Windows-x64.zip: extract into a writable folder and run
NobleArchimedesLauncher.exe. - Supply your own USA original Xbox disc image or extracted disc in
assets. The first start compiles the game locally, then offers Start. Keep the includedcompilerfolder. - Source.zip: release-commit source plus the actual patched open-source SDK/dependency source snapshots, licenses and build instructions.
SHA256SUMS.txtverifies both archives.
Changes
- Primary native x64 Xbox recompiler, Direct3D 12 renderer and XAudio2 audio; PS2 remains experimental.
- Widescreen/menu/shadow fixes, shader caching, filtering, resolution/render-scale settings, game options and PCSX2 PNG/DDS HD texture-pack support.
- Original Noble Archimedes launcher artwork, astrolabe icon and instrumental theme with a saved music toggle.
- Donor source and credits retained from jmafort/CastlevaniaCOD-PC; explicit scoped licensing and fork/build guidance.
Validation and limits
The built runtime ZIP passed 9/9 installation/startup/gameplay checks outside the source tree, including PE dependency closure, first-run game-DLL compilation, movement and pause/resume. Six focused test groups (30 checks) passed. Short courtyard samples reached about 59 FPS; this is not whole-game qualification or a fresh Windows installation test.
This binary download is USA Xbox only. EU source configurations are included, but an EU binary was not built or qualified without a matching local game copy. HD packs must be acquired separately and were not locally qualified. Expect beta defects and keep save backups.
Source commit: 195e007de6b6ed58775492875af024ff5db6155f. See the changelog, LICENSE and third-party notices for details.
Noble Archimedes Alpha 0.2.1
Noble Archimedes Alpha 0.2.1
This maintenance release refines the Stage A EE scheduler architecture, resolves virtual time pacing deadlocks, and eliminates scheduler polling overhead across all gameplay regions.
Key Improvements & Bug Fixes
-
Scheduler Dispatch Rate Reduction (968,000/s -> ~3,900/s):
- Fixed a critical pacing condition in
EeScheduler::processPendingEvents()andEeScheduler::checkpointDue(): when scheduled deadlines reach virtual cycle time while host pacing time is future (s_pacingDeadline),m_checkpointPendingis no longer continuously flagged, preventing basic blocks from collapsing out of the inner quantum loop. - Reduced scheduler round-trips from ~968,000 dispatches/sec to ~3,900 dispatches/sec, cutting 76% of host thread dispatch and mutex polling overhead.
- Bumped maximum inner quantum budget up to 1,000,000 cycles (bounded by the earliest scheduled event deadline), while guaranteeing iteration-1 breaks on queue-spin addresses (
0x41fff0,0x420528,0x420050,0x4203B0,0x4204E8,0x420628).
- Fixed a critical pacing condition in
-
DMA Queue Allocation & Virtual Time Stability:
- Restored clean
std::min_elementdeadline selection inEeScheduler::updateNextDeadline(), ensuringm_nextDeadlineCycleis never zeroed when events are future-paced, resolving guest lockups insub_0041FFF0. - Fixed DMA free list pool check in
isQueueSpin: correctedfreeHead == 0uevaluation so valid buffer node addresses (>= 0xAC3C20) are not mistakenly treated as empty pool starvation. - Replaced artificial cycle jumps with cooperative guest yielding when DMA nodes are legitimately exhausted, allowing worker threads to drain without distorting frame pace.
- Restored clean
-
Universal Courtyard Room State Support (
[4, 10, 3, *]):- Updated all measurement and validation harnesses (
measure_gameplay.py,run_gameplay_validation.py,run_gameplay_validation_regions.py) to recognize all room states ([4, 10, 3, *]), enabling continuous measurement through transitions.
- Updated all measurement and validation harnesses (
-
Steady-State Courtyard Profiling:
- Confirmed steady-state 3D courtyard execution (
[4, 10, 3, 1]) measures 14.43 FPS across 922 frames (63.9s) at only 0.54 host CPU cores (down from 1.68–1.94 cores), isolating the remaining frame time entirely to GPU/VIF1 rasterization and draw call latency (~4 VBlanks per frame) rather than host scheduler contention.
- Confirmed steady-state 3D courtyard execution (
Distribution boundary
The GitHub asset is a source-only Windows kit. It opens through the supplied command launchers after the user builds the host locally. It excludes the game ISO, extracted executable, generated/recompiled game implementation, private VU/GPU translations, captures, saves, dependency binaries and compiled host executable.
Noble Archimedes Alpha 0.2.0
Noble Archimedes Alpha 0.2.0
This release incorporates major performance advancements pushing measured gameplay from ~20.5–26.4 FPS to ~53.0 FPS (>2x speedup), alongside comprehensive EE scheduler optimizations, non-stalling future deadline logic, and deadline-pacing deadlock fixes.
Major Gains & Performance Breakthroughs
-
EE Scheduler Quantum Inner Loop & L1 Direct-Mapped Block Cache (Stage A):
- Eliminated the project's primary host-side bottleneck: ~930,000 guest-to-scheduler context roundtrips and thread reselection loops per second.
- Implemented an inner quantum loop in
EeScheduler::run()computing safe cycle budgets bounded by hardware timers, DMA transfers, and future deadlines. - Added a 64K direct-mapped L1 block cache (
fastLookupBlock) inEeScheduler.cppavoiding hash/table lookups on hot execution paths. - Required zero guest recompilation (all 32 guest
.ochunks preserved untouched) and maintained binary ABI stability inee_scheduler.h. - Measured Performance: Guest
phase_framesadvanced 912 frames in 17.2s (52.97 FPS (~53 FPS)) during boot, menus, and 3D world transition, more than doubling the previous baseline.
-
PCSX2-Style VU Dead Flag Elimination:
- Activated conservative 4-cycle FMAC flag liveness analysis (
--vu-dead-flag-elimination). - Elided
CaptureFullFmac, normalization, and sticky flag retirement for instructions whose flags are dead, reducing VU worker CPU time from 11.78s to 7.33s per 15s window (a 10.4% speedup in paired gameplay controls).
- Activated conservative 4-cycle FMAC flag liveness analysis (
Bug Fixes & Scheduler Hardening
- Host-Pacing & Queue Spin Deadlock Resolution:
- Fixed an issue in
EeScheduler::updateNextDeadline()where cycle-due events waiting on host pacing clearedm_nextDeadlineCycleto 0, stalling virtual time progression during DMA node starvation (0xAC3CF8free pool exhaustion). - Added fallback cycle advancement in
EeScheduler::checkpointDue()during DMA queue spin loops (isQueueSpin), ensuring the scheduler advances bykVBlankPeriodCyclesrather than freezing at 100% CPU when waiting on VSync/DMA worker drains.
- Fixed an issue in
- GS
sceGsSyncVReturn Address Guard:- Guarded
ctx->pc = rainGS.cppstubs (sceGsSyncVandsceGsSyncVCallback) against null return addresses (if (ra != 0u)), preserving scheduler continuity.
- Guarded
- Validation Probe Compatibility:
- Updated
run_gameplay_validation.pyto recognize fast-path room state transitions ([4, 10, 3, 3]), preventing false-positive timeouts at 50+ FPS speeds.
- Updated
Distribution boundary
The GitHub asset is a source-only Windows kit. It opens through the supplied command launchers after the user builds the host locally. It excludes the game ISO, extracted executable, generated/recompiled game implementation, private VU/GPU translations, captures, saves, dependency binaries and compiled host executable.
Noble Archimedes Alpha 0.1.0
Changelog
Alpha 0.1.0 — 2026-10-15
This is the first named development release of Noble Archimedes. It publishes the advanced native VIF1 worker and scheduler work, selectable graphics architecture, reproducible build documentation and a source-only Windows release kit.
Selecting the game
Only the USA PlayStation 2 release SLUS-21168 is supported. Use your own lawfully obtained disc image. Name it Castlevania - Curse of Darkness (USA).iso, place it beside the locally built executable and extract SLUS_211.68 to extracted/SLUS_211.68 using the command in BUILDING.md. The release contains no game data or translated game implementation.
Selecting the GPU renderer
- Double-click
Launch Native.cmdfor the native recompilation path with Vulkan paraLLEl-GS. - Double-click
Launch PCSX2 GS.cmdfor the experimental PCSX2 GS-only adapter. It requires a build configured withPS2X_ENABLE_PCSX2_GS=ON,noble_pcsx2_gs.dll, its licensed dependencies and resources. - From a running build, press F1, expand Graphics, choose Native or Hybrid (PCSX2 GS), then restart. The saved choice takes effect on the next launch.
Hybrid mode keeps this project's recompiled EE, VU execution, scheduling, input and gameplay runtime. It replaces only the GS renderer and does not start a complete PCSX2 virtual machine.
Current performance and correctness
The newest retained VU-correct candidate measured 31.5009 gameplay updates/s: 1,232 updates over 39.110 seconds with protected gameplay state [4, 10, 3, 1] unchanged. An older private-development ledger run recorded 35.8328 gameplay updates/s and 58.4375 fresh presented images/s over different measurement windows. These results do not establish sustained 58–60 FPS gameplay, and the public source kit does not reproduce the private optimized VU DLL.
The retained work includes the native VIF1 worker, explicit fencing and state restoration, ordered GIF packet handling, a scheduler empty-work fast path, reusable event/deadline scratch storage, Windows timer-resolution handling, renderer settings and the PCSX2 GS adapter source.
What remains
- Reach and validate 58–60 actual gameplay updates/s with VU correctness preserved.
- Finish the ordered native engine seam through skinning, normals, extrusion, projection, clipping and packet/cache writes.
- Prove the PCSX2 GS-only bridge in real gameplay and package its complete licensed dependency/resource closure.
- Make clean public game-code generation and the end-to-end Windows build reproducible.
- Separate user-generated game implementation from the redistributable host so a playable public binary can be shipped without game-derived code.
- Resolve remaining GS test failures and the broad test-suite VSync stall.
- Qualify combat, enemies, Innocent Devils, effects, transitions, movies, sound, memory cards and saves.
Distribution boundary
The GitHub asset is a source-only Windows kit. It opens through the supplied command launchers after the user builds the host locally. It excludes the game ISO, extracted executable, generated/recompiled game implementation, private VU/GPU translations, captures, saves, dependency binaries and compiled host executable.