Arrrgh! Bug in tinker cut-scene
Pilgrim's Quest
January 8th 2009, 01:02 PM
Kåre
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?
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
Kåre
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(¤t_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(¤t_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
Looking at the coredump, I found the following:
#0 0x0804fc6d in process_line (script=11,
s=0xbfe84af0 "freeze(¤t_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(¤t_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
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(¤t_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 (¤t_sprite is 1000 or a sprite that doesn't exist). SimonK probably just copied that code and forgot to take it out.
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(¤t_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 (¤t_sprite is 1000 or a sprite that doesn't exist). SimonK probably just copied that code and forgot to take it out.
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.
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
Kaare
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?
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?
I'll post an update to Fedora (and other distros) - I should have done it earlier
January 9th 2009, 12:25 PM
Kaare
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.
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.
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
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
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.
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.