07th-mod / higurashi-console-arcs

85 stars 18 forks source link

New Console Arcs DLL #594

Closed drojf closed 1 year ago

drojf commented 1 year ago

New Console Arcs DLL

The console arcs DLL hasn't been updated for a very long time. I want to update the DLL and other files as necessary, but I'd like @DoctorDiablo to see if doing so will break anything. I'm still in the process of preparing, I'll message you on discord when I'm fully ready.

Just now I did a very brief test of the console arcs to check if the game still functioned, and any changes to be made to make the following features work. It does seem OK but I haven't done detailed testing,.

One thing I did notice is that when skipping (holding CTRL), or maybe sometimes when clicking through very fast, sometimes BGM wouldn't play properly. Not sure if that is an existing known issue.

BGM name display on Right Click menu

I've added a function to the mod which displays the current BGM name. Each BGM folder needs to have a bgmInfo.json file which tells the mod what the real name of each .ogg file is.

The console arcs only has one BGM folder, BGM.

I've generated a bgmInfo.json file for the Console arcs, attached below.

I've been placing this file in the BGM archives, so for consistency it should be placed in the BGM archive (for the other chapters, the BGM is shared between multiple chapters, so if I put it in the script archive there would be a duplicate copy of the bgmInfo.json in every repo).

EDIT: decided to just include it in the repo instead of putting it in the Console-BGM archive

In addition, a function call needs to be added to the init.txt, which is included in this PR

Lipsync Changes

The new lipsync doesn't require the spectrum files anymore. No action is required, on your part, but you can remove the spectrum files from your archives now (probably best to test this first)

Compiled Update Scripts Changes

Previously, the game would use the date modified to check whether a script needs to be re-compiled.

Now, the game will store the checksum of scripts its already compiled, and re-compile scripts if the checksum has changed (or if it detects the size has changed).

This information is stored in the txtInfoDictionary.json file in the CompiledUpdateScripts folder

I'm guessing you copy the entire CompiledUpdateScripts folder when you create a new release, so this should work automatically. However, you need to make sure to include this generated txtInfoDictionary.json file, otherwise the game will try to re-compile scripts on first launch.

Native Linux crash/windowed mode fix

You don't need to do anything for this, but this is one of the reasons I want to push the new DLL. See

TODO before release