how did you do this? exactly?
If you just want the quick result, just download the 7z in the post, but if you're curious :
I extracted the javascript to a js file (in a linux console, you can have on in windows just install WSL (windows subsystem linux) or WSL2 via the microsoft store, shift right click in directory (Open linux shell here then I typed the command )
grep var "Debasing Grounds v0480.html" | head 1 > script480.js
command explain
-> grep: search pattern or string in file
-> var: is the pattern i search
-> "Debasing Grounds v0480.html": is the file i seach (I can give more than one, or even do a recursive search in directories with the good options)
-> |, by default grep print its result to the standard output of the console, i tell the shell to put that into the input of the next command
-> head -1, I only keep the first line (all the js is in only one file), tail -1 would keep the last
-> > script480.js, like grep head output to the standard ouput, the visible one, i tell the shell to write it to script480_obs.js instead
then I putted the javascript to an oneline deobfuscator, don't remember witch, then i saved the 'clean' javascript to script480.js
then I modified the html to take the script and style to external file, it's easier to work on separated files, notably the layout
then I used firefox profiler to see where the code was loosing time, go to an option you know it will take abonormal time (strip for an npc) F12 -> performance, start recording, click on strip seductively, stop recording when the screen has updated, check where it take too much time (JSON.parse)
then I studied the code
then I patched it with a thing i don't like in code : using a global variable to store the state (the 2 function setSave/getSave).
then I coded a little perl program to do the search & replace
so using the previous linux shell
$./patch.pl script480.js > script480_patched.js
command explain :
./, by default current directory is not in the path where the shell seach command, . is the current directory, / the directory separator
patch.pl, the name of the script program I call
script480.js, the file i want the patcher to work on,
> script480_patched.js, the script print to the standard output, i tell the shell to redirect that to the file
here is the final result, it's 4 file, my patcher for the curious (not needed), the javascript patched for the faster game, and some corrections (shop not working in the original 480), and the html with a different layout (date left of button, the npc just right of the PC)
I was thinking of moving the logo to the right to keep the date maximum left, but i'm happy with it.
there is also my submiss function, i reverted it to the original behaviour, but for my play I put it to 150, to allow more submission; by default the total submission the pc can have, is 100 if you have 50 holder, 50 Ed, if you gain 1 David, it goes 49.5 Holder, 49.5 Ed, 1 David. If you change var maxTotalSubmission = 100; to 150, the max per npc is still 100, but you can have 75 Holder 25 David 50 Ed. Be warned, by changing this value some "bad end" are more likely to be difficult to get out than the vanilla value.