The Dink Network

HD and Yeoldedink fail to run some scripts that 1.08 can run

July 17th 2024, 02:23 AM
death.gif
Seseler
Peasant He/Him Heard Island And Mcdonald Islands
 
In The Creeping Sands, screen 116 contains a secret that is supposed to become visible after killing the enemy on the screen. This is done by having the hole a script that calls sp_nodraw in it's main procedure, and the enemy's death procedure makes it visible.

In Dink 1.08 this works as it should. However, in all of HD, Freedink and Yeoldedink the hole is visible before killing the enemy.

For refence here is the hole's script:
/this script is for secret entrance to top of mountains

void main( void )
{
  &aaaa = &current_sprite;
  sp_nodraw(&current_sprite, 1);
}


I believe that the issue is caused because there are two null bytes in the start of the script (omitted from the code above).

The comment is missing a slash, but it does not affect the issue.

Side note:

The hole is made appear by having the following in the monster's death procedure:
  sp_nodraw(&aaaa, 0);
  sp_script(&aaaa, "s3-sec2");


Incidentally, the value of &aaaa is likely correct, because one screen left there is a sprite that also happens to use &aaaaa and sets it to correct value.
July 17th 2024, 06:22 AM
peasantmb.gif
yeoldetoast
Peasant They/Them Australia
Oh, NOW YOU'VE DONE IT! 
Upon visiting that screen I was greeted with a script decompressor failure in the log.

I've then attempted to unpack them all using a decompressor I wrote years ago that hasn't let me down so far, which failed on start-4.d, and indeed the title screen's "leave" button does nothing. For the files it managed to decompress, it added strange characters to the beginning of the first line:

)/guard at the castle
s/item Thor's Hammer
;/script for individual super fireball


etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder. Thankfully the stars have aligned and he graces us with his presence meaning that if WDED or something is able to decompress them they could be reuploaded in plain text format as a patch.
July 17th 2024, 06:55 AM
death.gif
Seseler
Peasant He/Him Heard Island And Mcdonald Islands
 
For the files it managed to decompress, it added strange characters to the beginning of the first line
etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder.


I didn't even think about it could be a compression issue.
I was wondering how someone could accidentally add nulls to start of the file, but that explains it.
July 17th 2024, 07:29 AM
peasantmb.gif
yeoldetoast
Peasant They/Them Australia
Oh, NOW YOU'VE DONE IT! 
In this old post by Tyrsis it's claimed that the compile.exe included with v1.07 and earlier has something wrong with it, which may mean anything from that era using compressed scripts is affected.
July 17th 2024, 09:13 PM
custom_simon.gif
SimonK
Peasant He/Him Australia
 
I'll take a look...

have submitted a v0.7 which fixes this and have made sure all scripts have the correct // comment line. Replaced the somewhat annoying menu/choice sounds but left pretty much everything else, including the incredibly long victory dance sequence Dink can do.
July 18th 2024, 12:34 AM
peasantmb.gif
yeoldetoast
Peasant They/Them Australia
Oh, NOW YOU'VE DONE IT! 
Also found this error message from when Seth rewrote the decompressor. Seems it's only visible in debug builds rather than release builds for the end user though.

Might have caused some interesting unreproducible bugs back in the day if it was overwriting random stuff.
July 18th 2024, 11:01 AM
death.gif
Seseler
Peasant He/Him Heard Island And Mcdonald Islands
 
. Replaced the somewhat annoying menu/choice sounds but left pretty much everything else, including the incredibly long victory dance sequence Dink can do.

You have some new fresh Dink dance animations now, so you should have stretched it to an hour long show .
July 18th 2024, 09:03 PM
custom_simon.gif
SimonK
Peasant He/Him Australia
 
True, but I think I'll leave The Creeping Sands as is... unless other errors pop up.

I had completely forgotten that end dance sequence, as well as an end boss that fights with farts. Low-brow toilet humour is not everyone's type of humour, but it made me laugh.