Code Monkey home page Code Monkey logo

galladite27 / onscripter-en Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 9.0 38.9 MB

Continuation of ONScripter-EN with updated dependencies and more features and bugfixes. Also see onscripter-insani (https://github.com/insani-org/onscripter-insani), our sister project.

Home Page: http://galladite.net/~galladite/ons-en/

License: GNU General Public License v2.0

C++ 5.36% C 75.51% Shell 11.90% HTML 0.15% Makefile 2.62% M4 2.24% Assembly 0.34% Logos 0.01% Perl 0.08% Objective-C 0.67% CMake 0.09% Awk 0.10% Python 0.52% Roff 0.19% CSS 0.01% DIGITAL Command Language 0.02% SAS 0.06% Smalltalk 0.03% WebAssembly 0.06% Module Management System 0.07%
nscripter onscripter onscripter-en

onscripter-en's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

onscripter-en's Issues

MIDI sound in old ONScripter releases

Overview

Several of the older al|together ONScripter games use MIDI for background music. Music in some of the games works with my set-up with the 2011 ONScripter-EN build available on Kaisernet but not with any of the 2023 builds. Below, I will document my set-up and test results with different games.

My set-up

I am running EndeavourOS, based on Arch Linux. My audio server is Pipewire. My set up for MIDI games is Fluidsynth (with all 32-bit libraries installed) and loading three ALSA kernel modules. I did not diverge at all from the relevant instructions on the Arch Wiki other than installing 32-bit libraries. See steps below.

  1. https://wiki.archlinux.org/title/Fluidsynth -- I followed instructions to set up Fluidsynth and run it in ALSA daemon mode.
  2. Load following kernel modules: (1) snd-seq-oss (2) snd-pcm-oss (3) snd-mixer-oss (see: https://wiki.archlinux.org/title/ALSA#OSS_compatibility)

Note that step 1 is sufficient if I am running the original al|together Windows .exe on top of WINE. Step 2 is necessary for sound to work in the native Linux versions.

Also note that I have not tested this with Timidity++ since all of my games work in some form with Fluidsynth.

(I also detailed my set-up in an article, although as I noted I did not diverge from the Arch Wiki: https://thenewleafjournal.com/midi-sound-for-games-on-arch-based-distro/)

Results

Sound for the MIDI games I have tested always works with the original Windows .exe on top of WINE when I have Fluidsynth running. My results running them with Linux ONScripter-EN have been mixed. I will separate the novels into different categories. Note that I tested multiple ONS-23 versions and had the same result with all.

Note: "Original" refers to the Linux ONScripter version that came with the original al|together release. All of the games I am looking at had a native Linux release. Most of the original Linux builds do not run on my system. In those cases, I will write N/R (standing for No Run). In cases where the build does work on my system, I will list the MIDI result as Y or N.

VN ONS-11 ONS-23 Original
Instant Death! Panda Samurai N[1] N N/R
My Black Cat Y N N/R
Night of the Forget-Me-Nots[2] Y N N
The World to Reverse - Hallucinate[3] N N N/R
Visions from the Other Side Y N N/R
Wanderers in the Sky N[4] N N/R

[1] Glitchy, distorted sound. Does not work for all intents and purposes. But there is some output unlike in ONS23. This could be some issue with my particular configuration, but I will note that sound works fine in Windows version with WINE.

[2] MIDI does not work in 06 or 23 versions. However, terminal output for 06 version references MIDI when the music is supposed to start in-game...

 ONScripter version 20060724-insani(2.55)
Autodetect: insanity spirit detected!
Display: 640 x 480 (32 bpp)
Audio: 44100 Hz 16 bit stereo
 *** plugin jpgplgin.dll|jpg is not available, ignored. ***
 command [killmenu] is not supported yet!!
 command [killmenu] is not supported yet!!
 *** can't find file [cursor1.bmp] ***
can't play MIDI file bgm/bgm02.mid

No reference to MIDI in 23 build.

[3] Apparently used a unique custom ONScripter build. Special build still downloadable: https://altogether.b-cdn.net/at2006/at2006/twtr_onscripter.tar.bz2

[4] Glitchy sound on start menu, no sound in game. No terminal references. This could be some issue with my particular configuration, but I will note that sound works fine in Windows version with WINE.

lsp string cannot be kept within one line in UTF-8 mode

ONScripter-EN Version: 6.28 (Windows)
Issue: When using the lsp command, string text may not be displayed on the same line due to width
Steps:
Code

*define
game
*start
lsp 0,":s#FFFFFFボタン1番",50,50
lsp 1,":s#FFFFFFTEST DATA",150,50
lsp 2,":s#FFFFFF1234567",250,150
文字
click
end

Start with UTF-8 mode:

image

Terminal output:

System info: Intel CPU, with functions: MMX SSE SSE2 
Reading command-line options from 'ons.cfg'
0.utf.txt detected; entering UTF-8 mode
humanpos: 160,320,480; underline: 479

*****  executeLabel define:1/3:mode=updated *****
ScriptParser::Parseline game
ScriptParser::Parseline lsp

*****  executeLabel start:2/7:mode=updated *****
ScriptParser::Parseline lsp

*****  executeLabel start:3/7:mode=updated *****
ScriptParser::Parseline lsp

*****  executeLabel start:4/7:mode=updated *****
ScriptParser::Parseline 文字
Effect number 1, 0 ms

*****  executeLabel start:5/7:mode=text *****
ScriptParser::Parseline click

*****  executeLabel start:6/7:mode=text *****
ScriptParser::Parseline end
Quitting...

Then change UTF-8 -> Shift-JIS and rename 0.utf.txt -> 0.txt :

image

Terminal output:

System info: Intel CPU, with functions: MMX SSE SSE2 
Reading command-line options from 'ons.cfg'
humanpos: 160,320,480; underline: 479

*****  executeLabel define:1/3:mode=updated *****
ScriptParser::Parseline game
ScriptParser::Parseline lsp

*****  executeLabel start:2/7:mode=updated *****
ScriptParser::Parseline lsp

*****  executeLabel start:3/7:mode=updated *****
ScriptParser::Parseline lsp

*****  executeLabel start:4/7:mode=updated *****
ScriptParser::Parseline 文字
Effect number 1, 0 ms

*****  executeLabel start:5/7:mode=text *****
ScriptParser::Parseline click

*****  executeLabel start:6/7:mode=text *****
ScriptParser::Parseline end
Quitting...```

FreeType2 extlib never marks itself as completed

Something is not quite right with the make-ish in the generated Makefile or Makefile.extlibs.

WIth current master branch, repeatedly calling make spews the following even if the internal FreeType was built successfully:

$ make
Building internal Freetype...

Save issue with Kokoro no Kusari 2

Game description

Real intention ~Kokoro no Kusari~ 2 released by Negative Gang in August 2009.

Environment

  • Onscripter-en Version: onscripter-en-20230628.Windows.x86_64, also tried with onscripter-en-20230409.Windows.x86-64.
  • OS: Windows 10, version 10.0.19045.
  • Game Version: Latest from DLSite.

The Demo from DLSite also exhibits the same problem. I have tried both with the default nscript.dat and one with test translations.

Issue

If you load from a save, all saves created from that point on will all load to the newest previous save before reloading. As in, if I am playing and make

  • Save 1
  • Save 2
  • Save 3

If I load from Save 2 and make Saves 4, 5, and 6, all three of those latter saves will all load at Save 3 instead of where they were actually saved. Loading Saves 1, 2, or 3 will still load from the correct places and is unaffected. If you do not reload from a save(ie you start a new game from the title screen), then saves will work as expected as long as you do not then load one of them.

Reproduction

  1. Start a new game
  2. Make any amount of saves while playing
  3. Load from any of them
  4. Keep playing and make new saves
  5. Try to load a save from step 4

Notes

  • Using the default exe instead of onscripter-en doesn't have the same problem with saves.
  • I've also seen trying to load the bad saves go straight to the title screen. Could be related to trying to overwrite/delete the save that the bad saves are trying to load.
  • Also don't know if it's related(can make a separate issue if not) but the scene recollection also keeps going in the scene as if I'm playing normally instead of ending when the scene ends.

Appetite for updating dependencies/Build System?

Hi there, I have some interest in utilizing this fork for some enhancements in an old nscripter game. I've worked on my own fork of onscripter for this quite some time ago, but I'd prefer to contribute changes to a well maintained fork than leave them to rot in my own.

The primary things I worked on were updating the various dependencies to latest (albeit a few were replaced), getting resize support working (game maintains aspect ratio, but will resize to the borders of the window where possible), controller support. ,and CMake so it could be relatively easily built on Window/Mac/Linux, I also built in a very goofy system for texture replacement, but I wouldn't really want to replicate that.

When I initially did it, I cut out a lot of support for the more esoteric platforms. In working on it in my fork of this repo, it's likely I'm breaking them, but I'm not going out of my way to delete them. But I don't have working toolchains for most of them. Just looking around the code, I think the only one that might be impossible to port to (and of course, I could certainly be wrong) is the PDA.

Most of the upgrades have gone smoothly so far, my last large hurdle are the various media file wrappers as well as CD support. I'm looking at possibly replacing the former with a wrapper for FFMpeg, and the latter with turning the old SDL1 CD module into a tiny library of it's own and see I can get it working that way.

All that being said, before I make a relatively large PR whenever I finish this, would there be interest in merging such a thing? If need be I suppose I can keep a fork going and try to keep up to date with the upstream, I don't have any desire to compete so it would just be used for the few projects I might help out with.

sdl_mixer test. o.mp3 is not recognised as mp3

Hi, when try to build onscripter_en, the configure scritp say the system sdl_mixer not have mp3 support. when edit the configure script and put a 'exit' command in the line 688, and go to .conftest folder, playing the files o.mp3 and o.ogg with a mediaplayer (mpv in my case) say the o.mp3 is not recognized as mp3

└───╼  mpv o.mp3
[ffmpeg/demuxer] mp3: Format mp3 detected only with low score of 1, misdetection possible!
Failed to recognize file format.
Exiting... (Errors when loading file)

but the o.ogg is recognized correct

└───╼  mpv o.ogg 
[ffmpeg/demuxer] ogg: Estimating duration from bitrate, this may be inaccurate
 (+) Audio --aid=1 (vorbis 2ch 44100Hz)
Exiting... (Errors when loading file)

how can fix this?

greetings

Waifu2x integration

Given how low resolution most ONScripter games are I've implemented Windows support for Waifu2x as a scaling algorithm instead of simply using linear upscaling (with linear upscaling as a fallback if Waifu2x is unavailable). Would you be interested in a pull request with this feature? It supports both on-the-fly upscaling using the original assets or offline upscaling using the conversion tools.

Sound issue on "Plumerai" (part 2 of "I, Too, Saw Dreams Through Air")

Originally reported by @nafnlj

Overview

In both the current release for Linux, the game-included version, and the 20110628 build for Linux, and only reported with the game "Plumerai", the line in ons.cfg which changes the save location and the command-line option to change the save location both cause the game to launch without sound.

To make this more confusing, using a game.id file does not cause this issue. It has not been tested if this is also the case with a ;gameid directive in the script file, although I suspect this will be the case.

Replication / documentation

  • Extracted contents of Windows installer for ITSDA into new directory
  • Navigated to Plumerai sub-directory
  • Set ons.cfg text file in Plumerai directory to point to specified save
    location
  • Ran game using Linux binary for ONScripter-EN
  • Game launched and ran without issue, but there was no sound
  • Removed ons.cfg txt file
  • Sound worked
  • Tried configuring save path through launch options with CLI
  • No sound
  • Note again: Tested separately with 2023 and 2011 builds
  • Conclusion: Changing save path for Plumerai on Linux causes sound to
    not work, did not test other ons.cfg options... note setting game.id
    does not cause sound issues

Extra txt importation

Hello, i'm looking to try to make a VN with your onscripter-en but i'm not really good to managing my project with the 00.txt 01.txt, etc.
I want to know if we have an import command or something like that to my game go looking for a script file with an other name.
I'm just reading the documentation on your website and i don't found something for this.

Possible Issue in Post-Credits Scene in Moonshine

ONScripter-EN Version: 6.28 (Linux)
Novel: Moonshine (http://altogether.insani.org/2008/4.html)

Issue: The novel ran with no issues through the end credits. I encountered what I think were some minor issues in Moonshine's post-credits scene, Afterglow.

  • The text went on auto-advance without my changing any settings (I am not sure that this behavior was unintended but it did not occur prior to the credits)
  • Some letters on completed lines of text became transparent

Steps to Reproduce: Play Moonshine to the end and watch the post-credits scene.

Terminal output: I launched Moonshine from the terminal with an option to change the save path. The following terminal output appeared around the time the issues began.


 ***[Warning] Parse Issue at line 7425 (*s_01:4408) - command [i] is not supported yet!! ***
	(String buffer: [i])
 ***[Warning] Parse Issue at line 7536 (*s_01:4519) - command [ignoreinput] is not supported yet!! ***
	(String buffer: [ignoreinput])
 ***[Warning] Parse Issue at line 7936 (*s_ep_end:1) - command [lr_trap2] is not supported yet!! ***
	(String buffer: [lr_trap2])
 ***[Warning] Parse Issue at line 7956 (*s_ep_end:21) - command [unignoreinput] is not supported yet!! ***
	(String buffer: [unignoreinput])

Line 7425: Dialogue line in last scene before end credits. I had not observed any strange behavior at this point.

Line 7536:

ignoreinput

This comes right between the last line of dialogue and the start of the end credits. I searched the 0.txt and saw that this is the only time ignoreinput is used, leading me to suspect this had something to do with the issue.

Line 7936:
lr_trap2 off
Line 7956:
unignoreinput

These both occurred after the final line of dialogue in the post-credit scene and before the novel returned to the main menu.

nsamake don't work on linux

I tried with the x86_64 (and the i386 just to try it) and I can't make my arc.nsa.
I'm on a Fedora 40.

log for the test :

./nsamake arc.nsa -e ../ressources
creating NSA archive 'arc.nsa', 43 files total
adding 1 of 43 (..\ressources\EN\menu\dummy.txt), length=0
adding 2 of 43 (..\ressources\EN\words\dummy.txt), length=0
adding 3 of 43 (..\ressources_itsnouse\00.txt), length=2660
adding 4 of 43 (..\ressources_itsnouse\01.txt), length=3939
adding 5 of 43 (..\ressources_itsnouse\02.txt), length=1314
adding 6 of 43 (..\ressources_itsnouse\03.txt), length=31
adding 7 of 43 (..\ressources_itsnouse\BG\CamScanner 06-19-2022 04.08.jpg), length=78906
adding 8 of 43 (..\ressources_itsnouse\BG\Corrupted_Pink.png), length=15645
adding 9 of 43 (..\ressources_itsnouse\BG\Noir.png), length=3290
adding 10 of 43 (..\ressources_itsnouse\BG\Pink.png), length=3291
adding 11 of 43 (..\ressources_itsnouse\BG\Red.png), length=3293
adding 12 of 43 (..\ressources_itsnouse\BG\Title.png), length=146860
adding 13 of 43 (..\ressources_itsnouse\BG\cg00-pe.png), length=562853
adding 14 of 43 (..\ressources_itsnouse\BG\cg01-pe-style.png), length=157419
adding 15 of 43 (..\ressources_itsnouse\BG\chambre.png), length=127708
adding 16 of 43 (..\ressources_itsnouse\BG\chambre_lux.png), length=130405
adding 17 of 43 (..\ressources_itsnouse\BGM\Go back to the Abyss.ogg), length=3234313
adding 18 of 43 (..\ressources_itsnouse\BGM\INTERLUDE.ogg), length=3008233
adding 19 of 43 (..\ressources_itsnouse\BGM\incendit.ogg), length=401322
adding 20 of 43 (..\ressources_itsnouse\SOUND\pas.ogg), length=76495
adding 21 of 43 (..\ressources_itsnouse\SOUND\reveil.ogg), length=62328
adding 22 of 43 (..\ressources_itsnouse\SOUND\tissu.ogg), length=19864
adding 23 of 43 (..\ressources_itsnouse\SOUND\title.ogg), length=52034
adding 24 of 43 (..\ressources_itsnouse\default.ttf), length=3805828
adding 25 of 43 (..\ressources\bgi\Corrupted_Pink.png), length=15645
adding 26 of 43 (..\ressources\bgi\Pink.png), length=3291
adding 27 of 43 (..\ressources\bgi\chambre.png), length=127708
adding 28 of 43 (..\ressources\bgi\chambre_lux.png), length=130405
adding 29 of 43 (..\ressources\bgm\Go back to the Abyss.ogg), length=3234313
adding 30 of 43 (..\ressources\bgm\INTERLUDE.ogg), length=3008233
adding 31 of 43 (..\ressources\cg\cg00-pe.png), length=562853
adding 32 of 43 (..\ressources\cg\cg01-pe-style.png), length=157419
adding 33 of 43 (..\ressources\char\dummy.txt), length=13
adding 34 of 43 (..\ressources\flowchart\flowchart J1.png), length=19188
adding 35 of 43 (..\ressources\menu\tmptitlescreen.png), length=20198
adding 36 of 43 (..\ressources\sound\incendit.ogg), length=401322
adding 37 of 43 (..\ressources\sound\old_title.ogg), length=52034
adding 38 of 43 (..\ressources\sound\pas.ogg), length=76495
adding 39 of 43 (..\ressources\sound\reveil.ogg), length=62328
adding 40 of 43 (..\ressources\sound\tissu.ogg), length=19864
adding 41 of 43 (..\ressources\words\word1.png), length=15461
adding 42 of 43 (..\ressources\words\word2.png), length=18118
adding 43 of 43 (..\ressources\words\word3.png), length=27967
free(): double free detected in tcache 2
Abandon (core dumped)

Display issue in flanca (from The world to reverse)

Game description

flanca is one of two novels which make up The World to Reverse.

Downloads: https://apothes.is/hosted/at2006/theworldtoreverse.html

My environment

I ran these tests on my desktop workstation which uses EndeavourOS. For Windows, I used the original executable provided with the al|together 2006 release and ran it with WINE. For Linux, I am using the newest ONScripter-EN release (6.28.23) from this repository. I tested ONScripter-EN 2011 and the version prior to proportional fonts support and had the same experience, so it is not unique to the releases in this repository. The 2006 Linux executable does not run on my system.

Issue

flanca is an entirely text-based novel. It has many choices with two options. In the original Windows version, the choices appear under the preceding text:

flanca-windows

However, when running it natively on Linux, the preceding text disappears and only the choice is visible:

flanca-linux-ons62823

The novel functions in both cases, but I am confident from context that the correct behavior is what I see in the Windows version with WINE.

Other notes

Link to the original customized ONScripter that was used for the 2006 release: https://altogether.b-cdn.net/at2006/at2006/twtr_onscripter.tar.bz2

See MIDI sound issue for the first novel in The world to reverse, hallucinate: #2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.