JoD debug mode research on SonicRetro:
https://forums.sonicretro.org/index.php?threads/nights-journey-of-dreams-debug-misc-research.24296/
All A-life props documented (credits to spyroid101):
https://docs.google.com/document/d/1wOcba2jBi0e9jokm2Y0qnDZGMlZfl2OxY25gqe1nmpE/edit?usp=sharing
.one - compressed archive format. Can contain various data from models and textures, to cutscene subtitles
.tls - UI textures. Can be opened with brawlbox/brawlcrate if renamed to .tpl format
.brmdl - model data
.brtxt - texture data for the models
.brcha - character animation data
.brres - various model data
for more info on brres check BRRES formats documentation on vg-resource
Moonjump gecko code:
2867E688 00000090
040782cc 4182002c
040782d4 41820024
040782dc 4182001c
e2000001 00000000
2A67E688 00000090
040782cc 4182019c
040782d4 418202d0
040782dc 41820730
e2000001 00000000
And the version for the prototype:
286672E0 00000090
04063124 4182002C
0406312c 41820024
04063134 4182001C
e2000001 00000000
2A6672E0 00000090
04063124 418201b0
0406312c 41820284
04063134 41820620
e2000001 00000000
Hold Z while midair after jumping to moonjump.
The September prototype for JoD has some files that are uncompressed in .xml format.
hugeData>audio has ones filled with configurations for sound effects, and I found a list of sound configs for Lost Park (SE_B7_1100.xml), listing Mirage TVs, lake appearing, trees growing, which are all from the TV's effects, but trees growing is followed by "tree_burning", which I suppose means they may have burst into flames when the TV's effects wore off (Unless I am just forgetting about Lost Park flaming trees existing in the final game)
<Cue Name="tree_burning" CueId="11006" SynthName="Synth/dummy_new" SynthUniqId="0x10001644" SynthPath="WorkSpace/NewProject/Synth/dummy_new" Comment="" UserData="" CreateTime="2007-02-26 21:35:55 " ModifyTime="2007-06-29 18:22:55 ">
There is a sound cue for Nightopians called "AL_Attack". This and the flaming tree effect above both lead to dummy sound files, which is why they are not used.
<Cue Name="AL_Attack" CueId="55019" SynthName="Synth/dummy_new" SynthUniqId="0x100021ef" SynthPath="WorkSpace/NewProject/Synth/dummy_new" Comment="" UserData="" CreateTime="2007-08-18 04:31:49 " ModifyTime="2007-08-19 21:46:28 ">
I also found a sound cue for "voice_undualize", which actually does lead to a sound effect.
<Cue Name="voice_undualize" CueId="52047" SynthName="Synth/B2/SE_B2_047FX0516" SynthUniqId="0x10000826" SynthPath="WorkSpace/NewProject/Synth/B2/SE_B2_047FX0516" Comment="" UserData="" CreateTime="2007-01-10 18:06:32 " ModifyTime="2007-08-08 00:36:02 ">
There is also this one, which is configured as "voice_summon"
<Cue Name="voice_summon" CueId="52048" SynthName="Synth/B2/SE_B2_048FX0516" SynthUniqId="0x10000840" SynthPath="WorkSpace/NewProject/Synth/B2/SE_B2_048FX0516" Comment="" UserData="" CreateTime="2007-05-17 00:12:21 " ModifyTime="2007-08-08 00:36:02 ">
There are configs for 4 eagle sfx, 2 clouds, and 5 magnet personas, but all lead to dummy sfx...
Cool detail though, the personas are in the order you obtain them, so if the cut personas followed this too, the order would have been: Dolphin, Eagle, Dragon, Rocket, Cloud, Magnet
<Cue Name="eagle1" CueId="52027" SynthName="Synth/dummy_new" SynthUniqId="0x1000214f" SynthPath="WorkSpace/NewProject/Synth/dummy_new" Comment="" UserData="" CreateTime="2007-01-10 18:03:38 " ModifyTime="2007-08-08 00:36:02 ">
---
<Cue Name="cloud1" CueId="52034" SynthName="Synth/dummy_new" SynthUniqId="0x1000214f" SynthPath="WorkSpace/NewProject/Synth/dummy_new" Comment="" UserData="" CreateTime="2007-01-10 18:04:24 " ModifyTime="2007-08-08 00:36:02 ">
---
<Cue Name="magnet1" CueId="52036" SynthName="Synth/dummy_new" SynthUniqId="0x1000214f" SynthPath="WorkSpace/NewProject/Synth/dummy_new" Comment="" UserData="" CreateTime="2007-01-10 18:04:28 " ModifyTime="2007-08-08 00:36:02 ">
⚠️WARNING! I only tested it on one cutscene and don't know how consistent this method actually is
Tools needed:
ONEX (Optional. for unpacking original .ONE files): nights-datamine
Heroes One Reloaded: https://github.com/Sewer56/HeroesONE-Reloaded/releases/tag/1.2.1
HxD hex editor (actually any hex editor will work): https://mh-nexus.de/en/hxd/
Extra: all files extracted and converted in needed formats + readable txt files so you don't need to use ONEX - https://drive.google.com/file/d/1KX3nGCne18FA-e2gWPgszAd4r89Txxwd/view?usp=sharing
File path to subtitles in game folder
*folder to where you extracted the game files*\DATA\files\message
1. Have your .one files extracted to .bin format.
Have a backup copy of original .one files because you WILL need them
2. Open your .bin file in hex editor and edit the text to whatever you need. Preferably you should not edit JP language files because not only you will not be able to see the japanese text in hex editor, but it also will mess up later steps.
Be aware to keep dots/00 between the letters. Dismissing them might break something.
Save the file after editing. (screenshot example 1)
3. Open Heroes One Reloaded and press file>new. The "add files" and choose your edited bin file
Save it with the same name as the bin file.
4. "If if works, it's not stupid" part. You NEED to open both of your edited and original .one files in hex editor. The original .one file should have a header ThisIsOneFile...М...Default and lots of 00 00 00 00 and other data, while edited file should have completely different header and data coming after it. Compare the files, they should start to have same matching non-empty data (screenshot example 2). Then copy everything in UNEDITED .one from the header up until the the match and replace it into edited file (screenshot example 3)
Heroes One Reloaded cannot open JoD .one files. Not sure if it's because of different headers or not, however the packed data that it creates is readable by JoD so that's already enough for the game modding. Also after the header and empty data but before the compressed subtitles, there seems to be some other data. I might only assume it's relatable to some other part of cutscenes, because without it the camera and animations became slightly glitchy
Editing only non-JP translations bins is REALLY important because japanese text is what makes both original and edited files have bits of the same data that could be used for the navigation through the file. Basically when compressed back into .one format, the data containing japanese text does not change because the method used for the compression is the same. If you change the japanese text tho, the data for compressed parts will change completely and it will make difficulty knowing what should be copied and pasted from original file to modified one.
Additional notes:
Text uses Unicode 1200
EH - Helen story subtitles
EK - Will story subtitles
"JP" "EN" "FR" "GE" "IT" translation language prefix
Each translation is "layered on" previous language translation (no idea why they did that). So Italian translation file always has all previous languages included but not used.
For non-english letters, unfortunately I have no idea what hex is used to insert non-english characters. I suggest to compare the bin files with txt files that I have provided
Screenshot example 1:
Screenshot example 2:
Screenshot example 3: