The Dink Network

Arrrgh! Bug in tinker cut-scene

Pilgrim's Quest

January 8th 2009, 01:02 PM
anon.gif
Kåre
Ghost They/Them
 
Argh! I was hit by a bug in the long cut-scene after I give the scale to the Tinker. After a while, the program crashes with the message:

Loading script STORY/DEC-FRG.D..
Procedure sp_base-walk does not take 2 parms in dec-frg, offset 300. ();
?)
ERROR: Procedure void sp_base-walk( void ); not found in script 940);. (word 2 was dec-frg)
Segmentation fault

Dink version:
GNU FreeDink 1.08.20080920
PQ version:
Pilgrim's Quest ver 1.41

Is there anything I can do apart from cross my fingers and hope Simon Klaebe is still reading this forum?
January 8th 2009, 03:22 PM
anon.gif
Kåre
Ghost They/Them
 
A little investigation shows that the error isn't in fact in DEC-FRG.D after all.

Looking at the coredump, I found the following:

#0 0x0804fc6d in process_line (script=11,
s=0xbfe84af0 "freeze(&current_sprite);\n", doelse=0)
at dinkc_bindings.c:728
#1 0x0804c7eb in run_script (script=11) at dinkc.c:1096
#2 0x08072ca9 in up_cycle () at freedink.c:3642
#3 0x080732a5 in updateFrame () at update_frame.c:298
#4 0x0806da65 in main (argc=2063600128, argv=0x4807460f) at freedink.c:5240

So the line that fails seems to be
freeze(&current_sprite);
and that's from DECRETUS.D - i found the source in .chm format...

It seems current_sprite has the wrong value

Unfortunately I have no idea how to fix this!

Anyone?

I spent too much time playing the DMOD up til now, to just give up here
January 8th 2009, 09:28 PM
fairy.gif
Someone
Peasant He/Him Australia
 
How do you know it's from DECRETUS.D? Did you look at all the scripts for that part?

It looks like a bug in PQ that crashes FreeDink (but probably not the original Dink). Beuc will appreciate you found this.

You need to delete/move DECRETUS.D and make a new file called decretus.c with the contents from the source. Delete the second freeze(&current_sprite). It shouldn't be there at all. Try it and tell us if it works.

Unless the above is an unrelated bug, it's crashing because that line is called after script_attach(1000) or a new screen is loaded (&current_sprite is 1000 or a sprite that doesn't exist). SimonK probably just copied that code and forgot to take it out.
January 9th 2009, 03:03 AM
farmer.gif
Beuc
Peasant He/Him France
 
Hi,

Can you try a more recent version of FreeDink from http://www.freedink.org/snapshots/ ?
This bug was reported at bug-freedink@gnu.org:
http://lists.gnu.org/archive/html/bug-freedink/2008-11/msg00001.html
http://lists.gnu.org/archive/html/bug-freedink/2008-11/msg00003.html

I fixed it, it should work for you It's a bug in the game (freeze(1000)) that somehow doesn't crash the windows version, but crashes the GNU/Linux version (because the Linux kernel is stricter about bad memory access). I fixed all similar bugs at that time.
If it doesn't work, please send a savegame to reproduce the problem.
January 9th 2009, 05:26 AM
anon.gif
Kaare
Ghost They/Them
 
Great, thanks! I'll try it.

I see you are maintainer of the Fedora package as well - any chance you can push a new release into the Fedora yum repository as well? Or are you preparing an official release before that?
January 9th 2009, 05:59 AM
anon.gif
Kaare
Ghost They/Them
 
Fixed it all right, thanks
January 9th 2009, 11:24 AM
farmer.gif
Beuc
Peasant He/Him France
 
I'll post an update to Fedora (and other distros) - I should have done it earlier
January 9th 2009, 12:25 PM
anon.gif
Kaare
Ghost They/Them
 
Great! Before you do so, though... I had to go back to the previous version of freedink at another spot to actually complete the game (and I even had to switch once more in the end scene).

It seems the game freezes completely when asking shard to disable a frogbot - nothing but a "kill -9" would end the process at all!

I'll post details and a savegame on the proper mailing list, I'm just writing it here too, if someone else should be follwing the thread.
January 9th 2009, 05:34 PM
farmer.gif
Beuc
Peasant He/Him France
 
Ah! I already pushed a new release to Fedora (but in the development release only).
http://koji.fedoraproject.org/koji/buildinfo?buildID=77922
I'm looking forward to your savegame. Such freezes do happen in a few D-Mods though
February 18th 2009, 12:35 PM
duckdie.gif
I have a trouble with this part too.
In some point of the animation, the program crashs and I receive this message:
"Dink Smallwood ('freedink') was not found on your computer. Please configure the Dink program name in the Options menu"

I Had installed in my Fedora using Yum, sou I'd remove it and reinstalled from the source ("http://www.freedink.org/snapshots/fedora/freedink-1.08.20080920-fedora.tar.gz"), but the crash's still there. Any solution?

PS: I use a Fedora 9 and run the game through DFArc.