Nintendo Switch Port of ONScripter

Best girl!

A port of onscripter-20060724-insani-sdl2 to the Switch.

I specifically made this to support running older NScripter-based games that would break on newer versions of ONScripter or ONScripter-EN.

Features

  • 4:3 aspect ratio simulation
  • Touchscreen support
  • RomFS integration
  • Optimized flush implementation

Tested games

  • Tsukihime
  • Kagetsu Tohya

I’m planning on testing other visual novels too.

Any game that uses legacy ONScripter should run just fine though. If not, please open an issue! ?

How to Play

  • Extract onscripter-nx.zip (or a game-specific zip from the releases) to the root of your SD card
  • Go to the folder where onscripter-nx.nro is located (/switch/ followed by onscripter-nx/ or game-specific folder name)
  • Copy the game files in that folder:
    • arc*.nsa / arc*.sar
    • nscript.dat / nscript.___
      • You don’t need this if you are using a game-specific version of ONScripter-NX.
    • Soundtracks (CD folder, …)
    • default.ttf font
      • You don’t need this if you are using a game-specific version of ONScripter-NX.
  • Launch ONScripter-NX from hbmenu
    • Note: Launching from the album applet seems to work, but it is strongly advised to launch it by holding R on an installed game to avoid potential memory problems since that’s the normal environment where Switch homebrews are designed to run.
  • Enjoy!

Controls

Joy-Con Controls

  • A -> Enter (or text advance)
  • B -> Go back (or text advance)
  • X -> Right-click Menu
  • Y -> Toggle “Draw full page at once” mode
  • D-Pad Up or L -> Scroll up text history
  • D-Pad Down or R -> Scroll down text history
  • Hold ZL or ZR -> Skip text
  • Plus -> Exit to homebrew menu

Joystick Controls

  • Joystick Up or Joystick Left -> Previous Element
  • Joystick Down or Joystick Right -> Next Element

Touch input is supported too.

Building instructions

  • You need devkitPro in order to build ONScripter-NX and its external libraries.
  • Open the shell (devkitPro MSYS if on Windows)
  • Install the dependencies packages
    • SDL2: pacman -S switch-sdl2 switch-sdl2_image switch-sdl2_mixer switch-sdl2_ttf
    • SMPEG2: pacman -S switch-smpeg2
  • IMPORTANT! At the time of writing this, the switch-sdl2_ttf package available through devkitPro pacman is broken and causes the app to not display text properly.
    If it happens to you, please see the following section for building the external libraries, where I’ve provided a patch for switch-sdl2_ttf.
  • If you want to integrate all your game files in one executable, put them in the romfs folder
  • In your open shell, cd to the folder of this repository
  • Run make

Building external libraries

  • Open the shell (devkitPro MSYS if on Windows)
  • Install the dependencies packages
    • pkg-config: pacman -S switch-pkg-config
    • devkitPro helper scripts: pacman -S dkp-toolchain-vars
  • In your open shell, cd to the folder of this repository
  • Run make -f Makefile.extlibs

Credits

And a huge thanks to SciresM for helping me out, and for his awesome work on Atmosphére’s GDB stub <3

License

See COPYING

GitHub

View Github