ONScripter-En changelog

New ONScripter-EN site as of 2009-08-23

ONScripter-EN is now maintained by Uncle Mion (sonozaki) at http://onscripter.denpa.mobi with Subversion repository at svn://svn.denpa.mobi/onscripter


Added "mode_wave_demo" command directive, as well as the behavior for when it is _inactive_. [Mion]

Fixed "click" command to not turn off skip-to-choice mode (more in line with NScr behavior). [Mion]

Made adjustments to wait/delay behavior during skip modes. [Mion]


Bugfixes for "fchk" command, graphics_.cpp file(s) compilation. [Mion]


bugfixes for non-MMX/SSE2 graphics routines, button handling (again), textwindow (non)display on CTRL-press. [Mion]

Removed drawing a z-order sprite in front of the tachie but behind the textwindow in windowback mode (can use extended sprites instead). [Mion]

Removed the 2009-06-14 fix that disallowed numerals after the asterisk in label names (NScr doesn’t obey its own rule, why should we?) [Mion]


Button bugfix. [Mion]


Changed "wait" command to do an actual timed wait even in ctrl/skip mode, just for a reduced duration. [Mion]

Added command "savedir". [Mion]


Fix for rain effect on PPC. [Mion, Roto]

Added Altivec graphics routines. [Mion, Roto]

Added SSE2 alphablend graphics routine. [Mion]


Fix for PPC ogg file playback (with bgm volume < 100). [Mion]


Moved SSE2/MMX graphics routines to separate files. [Mion]

Various bugfixes, mainly a syntax fix to disallow numerals after the asterisk in label names (as it should). [Mion]


Added SSE2/MMX graphics routines and removed sdl_gfx library. [Roto, Mion]

Added additive and subtractive alpha blending modes. [Mion]

Added commands "lsp2add", "lsph2add", "lsp2sub", "lsph2sub". [Mion]


Bugfixes; added support for sdl_gfx library. [Mion]

Also experimental graphics routines using SSE2. [Roto, Mion]


Added commands "menu_click_def", "menu_click_page", "minimizewindow", "strsph", "textspeeddefault"; bugfix for Mac text output. [Mion]


Support for opening non-ASCII Japanese filenames in Windows, even without Japanese locale. [Mion]


Fully-functional "movie" command, including async & pos options. May be buggy. [Mion]


Incorporated insani’s suggested "chvol" fix, redid "mp3fadeout", added "mp3fadein", "bgmfadeout", "bgmfadein" commands. Also various sound/music bugfixes. [Mion]


Incorporated changes from official onscripter-20090331. [Mion]


Corrected previously-fixed bugs reintroduced by the merge. [Mion]


Merged changes from experimental-effects branch: [Mion]


Various bugfixes, notably CTRL-quake and mouseOverCheck stale-button crashes. [Mion]


GCC 4.3 introduces a whole bunch of new warnings for ambiguous parentheses and unchecked IO errors. Applied a patch contributed by Tatu Kilappa that fixes most of these, and fixed the rest myself. [Haeleth]


Audio mixer now reinitializes itself when streaming audio format changes. [Mion]


Fixed some potential buffer overruns; thanks to Ivan Yanikov for the patches. [Haeleth]


Added return value 4 in "isskip" command for whole page mode. [Mion]

Changed refreshSurface with windowback mode to draw a z-order sprite in front of the tachie but behind the textwindow; Added windowchip handling to refreshSurface. [Mion]

Added "textbtnoff" command, fixed textbtn handling & updated test. [Mion]


Fixed a bug in game loading, where if a game was running and had pages in the lookback buffer, subsequently loading a saved game with no pages wouldn’t properly "clear" the existing lookback buffer. [Mion]


Added "textbtnstart", "linkcolor", "gettextbtnstr", "erasetextbtn", and "textexbtn" commands, along with support for textbuttons (using "<>"). [Mion]

Added tracking of text colors on current page. [Mion]


Added support for pretextgosub tags (using "[]") [Mion]

Added support for in-text variable assignment (using "{}"). [Mion]


Added emulation of "cascade" dll plugin effect. [Mion]


Reworked text buffer processing to do proper text placement when locate commands were used. [Mion]


Added "addkinsoku" and "setkinsoku" commands [Mion]

Reworked text processing to allow a mix of 1-byte & 2-byte chars, use better English space-based linebreaking and Japanese kinsoku-based linebreaking. [Mion]


Add filename-based language selection: if the executable is named "onscripter-en" (or "ONScripter-En", "onscripter_english", etc), it will use English mode by default. [Haeleth]


Implement clickskippage, and also add a debugprint command that dumps its parameters to stdout for convenient printf-style debugging. [Haeleth]

Add a rudimentary test suite; this is far from complete, but will hopefully help a bit in making sure future updates don’t break anything. [Haeleth]

Replace the FORCE_1BYTE_CHAR compile-time option with a runtime "language" command. Use "language english" to get the current behaviour, or pass ONScripter-En the "--english" command-line flag. [Haeleth]


Fix MPEG playback for movies with audio sampled at other than 44100Hz. [Mion]

Updated music playing code to be more in line with Ogapee’s latest release. [Mion]

Added save file version 2.05. [Mion]


Support added for extended sprite commands (lsp2, msp2, etc), and improved screenshot support (screenshot, deletescreenshot). [Mion]


Support NBZ files within SAR archives, and fix the xcode project. [Roine]


Numerous patches [Mion]:


Simplify handling of the click-wait enum.

Temporarily disable skip_to_wait; there’s breakage somewhere that’s causing nasty side-effects in Higurashi.


Adjust btnwait to match NScripter behaviour more closely. (Further tests are required to confirm that this doesn’t break any edge cases.)


Fix an OS X bug causing bundled games to fail.


Get the build working on Solaris (a useful benchmark for how well things work on less Linux-like platforms) and NetBSD (a useful step towards my ultimate goal of a visual novel on every toaster).

Fix some more MinGW build errors.

Add the missing ‘install’ target.


Fix some errors when mixing internal and system libraries. Improve support for FreeBSD.


Attempt to detect when a PNG image is using an NScripter-style mask area for transparency rather than a PNG alpha channel; add command-line flags and compile-time options to force either behaviour if auto-detection fails. This should fix games like Tsukihime which were broken by the addition of alpha channel support.


Fix some bugs: parsing of arguments, saving of vertical text, and compilation without INSANI defined.


Merge in some more changes from Roine designed to make life better for OS X users:


Merge in Roine’s scaling patch. This is considered experimental, and will currently only be enabled if RCA_SCALE is defined at compile-time.

Fix a silly bug in the previous mergings.


Merge in an adapted version of the ‘drawfix’ patch to speed up screen updates in windowed mode, plus a number of other patches:


Merge in useful fixes from onscripter-20070206.


Update build system to use a configure script that generates a platform-appropriate makefile. This also verifies that all required dependencies are available, and provides the option of building local libraries as required. The end result is a package that can reasonably be distributed in source form for Linux users. In the process support for PSP, iPod, etc. has been removed; it could be replaced easily enough if anyone was available to test.

Translate README.

To make life easier with existing games, add the ability to store game ID in a file ‘game.id’ as an alternative to modifying 0.txt.


Implement default data/save separation for Windows and Linux too. On Windows, saves go under the global Application Data folder; on Linux and other Unix-like systems, they go in a dotdir in the user’s home directory. These changes enhance Vista compatibility considerably, and make it possible to package Linux games in a way that respects the FHS.


Fix typo in usage summary.

Remove unnecessary diagnostics.

Make archive path and save path separately configurable. Game data no longer has to be stored in a writable directory.

OS X: make default archive path be the Resources folder of the application bundle, and default save path be a new subfolder of the user’s Library/Preferences. The name of the subfolder is derived from a new "game identifier" that should be specified at the top of 0.txt with a ";gameid Whatever" line immediately after the modeline.