ng2recomp v1.1.7 - Ninja Gaiden II, statically recompiled for PC
================================================================

This is not an emulator. The game's PowerPC code was translated to C++ and
compiled into a native x86-64 executable; the ReXGlue SDK 0.10.0.0-dev.unknown supplies the
Xbox 360 kernel, filesystem, audio and GPU emulation around it.

REQUIRES YOUR OWN COPY OF THE GAME. No game code or data is included here.


Already have an older version installed?
----------------------------------------

Do NOT unzip this beside it and start again. A new release ships an empty
game\ folder, so the only folder with your disc rip in it is the one you
installed first - and that is the one you will keep running, still on the old
executable, wondering why fixes have not arrived. (That is not hypothetical:
it produced three separate bug reports in one afternoon.)

Copy these over your existing install instead, keeping everything else:

    ng2.exe
    rexruntime.dll
    gamecontrollerdb.txt
    tools\
Your game\, dlc\, user\ and ng2_settings.cfg are untouched by that,
and the game will be on this version next time you start it.


Setting it up
-------------

1. Run ng2.exe. The first run opens a setup screen.

2. Point it at your game. Either:

     * "Choose folder..." - a folder that already holds your extracted disc,
       so that default.xex sits in it; or
     * "Choose disc image..." - your own .iso, which it extracts for you.
       About 6.7 GB and under a minute. The runtime mounts a folder rather
       than an image, which is why the copy is needed.

   It reads the title out of the disc, so it will tell you if you have
   pointed it at the wrong game.

3. Optional: point it at your DLC folder. The STFS packages are the
   extensionless files under  <content>\544307D5\00000002\ - Fiend
   Challenges, Shadow Walker, Biometal Hayabusa and Mission Mode. They are
   installed on every launch; doing it twice is harmless.

4. Press Play.

The game/ and dlc/ folders beside ng2.exe are the defaults, so putting your
files there works without choosing anything.

The folder should end up looking like:

    ng2.exe
    rexruntime.dll
    gamecontrollerdb.txt
    ng2_settings.cfg
    game\default.xex, game\*.ng2, ...
    dlc\<packages>            (optional)


Videos
------

They just play. Nothing to convert, nothing to install, no ffmpeg.

Earlier builds needed all of that. Every pre-rendered video came out
garbled, so the port re-encoded all 27 of them up front and drew its own
copy over the top. That was a workaround, and it could never fix the clips
inside the Techniques menu, which are a small inset in a scrolling page
rather than a full-screen video.

The cause was in the recompiler, not the game: VMX128 registers v64-v127
were being turned into zero-initialised local variables, so the video
codec's inverse-transform kernels read their permute control vectors as
zero and scrambled every block. Seven functions in the entire title did
that, and all seven were the video decoder - which is exactly why videos
were the only thing that looked wrong.

With that fixed, the game's own decoder is correct: decoded frames match
the source video at r = 1.000, with none of the clipped pixels the
corruption used to produce. The replacement path has been removed rather
than left switched off, so the only video setting left is "Skip intro
videos", which is a preference rather than a workaround.


Settings
--------

  F10   the settings menu, over the running game
  F4    every runtime setting, unfiltered
  F3    frame timing overlay
  `     console

The setup screen from step 1 comes back whenever you hold Shift while
launching. Settings that can change while the game runs do so immediately;
settings the window or the guest video mode were built from are shown greyed,
marked (restart), rather than accepted and quietly ignored.

What is there: window size and fullscreen, frame rate 30-144, V-Sync,
internal supersampling 1-3x, the 1280x720 internal render patch, anisotropic
filtering override, output filter, letterbox and dither.

Everything is saved in ng2_settings.cfg beside the executable, which is
documented and can be edited by hand. Any setting can also be overridden for a
single run with an environment variable - NG2_WIDTH, NG2_HEIGHT,
NG2_FULLSCREEN, NG2_FPS, NG2_SCALE, NG2_GAME, NG2_DLC.

Controllers work through SDL and gamecontrollerdb.txt (2,285 mappings) must
stay beside the executable. For keyboard control add  --mnk_mode=true  to the
command line.


Known issues
------------

  * The transition from Chapter 12 to Chapter 13 does not progress: the game
    shows its end-of-chapter screen and never loads the next chapter. It is
    waiting on an internal flag its own code never clears, and issues no
    further disc reads. The same fault is Xenia's long-standing kernel-save-
    file-errors, open since 2018. Chapters 1-12 are unaffected.



  * Chapter 12 runs at around 28 fps. It is playable, and the crash the
    community patch exists for is guarded against, but the frame rate is not
    fixed.



  * The AI texture option needs Python and a 43 MB Real-ESRGAN download that
    this release deliberately does not bundle. Without them the plain
    upscaler still works and the buttons say what is missing.



  * Chapter-loading videos cannot be skipped. The game treats a failed open
    of one as a bad disc and stops, so "Skip intro videos" deliberately
    leaves them alone.


Provenance
----------

Built 2026-09-29 22:45 on SaltTrader.
See SHA256SUMS for file hashes and provenance.txt for exactly what went in.

ng2.exe contains Ninja Gaiden II's own code in translated form and no game data;
it is published on the project's GitHub releases page and does nothing without
your own copy of the game.
