Read-only archive of the Armageddon Games Forums Archive (2000–2026) · About this archive

Screen init, random crashes,[ffc enemy damage sim, ???] all builds.

3 replies · 1,578 views · Started 25 November 2007

Well, once I realized this was happening at screen init that's enough evidence for me to make this thread. This has been randomly occuring for a while, and I think C-Dawg first noticed this way back. I don't know if he's still getting it but it's pretty annoying.

Basically one out of every 100? times you enter a screen with enemies and you have an ffc that has an enemy loop that checks it's coordinates with an enemies (maybe tries to assign damage?), ZC will crash. Maybe try a debugging version of zc and post the allegro file thing?

Zelda Classic v2.11 Beta (Build 18)
Allocating quest path buffers (4.00k/4.00k)...OK
Allocating map buffer (833.53k/837.53k)... OK
Allocating combo buffer (5.98k/843.51k)... OK
Allocating string buffer (9.75M/10.57M)... OK
Allocating door combo buffer (159.50k/10.73M)... OK
Allocating dmap buffer (234.00k/10.96M)... OK
Allocating combo buffer (1.62M/12.58M)... OK
Allocating color data buffer (314.11k/12.88M)... OK
Allocating tile buffer (511.88k/21.38M)... OK
Allocating trash buffer (97.66k/21.48M)... OK
Allocating item buffer (31.00k/21.51M)... OK
Allocating weapon buffer (2.50k/21.51M)... OK
Allocating guy buffer (22.00k/21.53M)... OK
Allocating combo class buffer (29.91k/21.56M)... OK
Initializing Allegro... OK
Checking Files... OK
Allocating bitmap buffers... OK
Loading data files:
Zelda.Dat...OK
Fonts.Dat...OK
SFX.Dat...OK
Initializing sound driver... OK
Used switch: -fullscreen
Triplebuffer available
Loading saved games... Loading Quest...

Decrypting...okay.
Opening...okay.
Reading Header...okay.
Reading Rules...okay.
Reading Strings...okay.
Reading Doors...okay.
Reading DMaps...okay.
Reading Misc. Data...okay.
Reading Misc. Colors...okay.
Reading Game Icons...okay.
Reading Items...okay.
Reading Weapons...okay.
Reading Maps...okay.
Reading Combos...okay.
Reading Combo Aliases...okay.
Reading Color Data...okay.
Reading Tiles...okay.
Reading Tunes...okay.
Reading Cheat Codes...okay.
Reading Init. Data...okay.
Reading Custom Guy Data...okay.
Reading Custom Link Sprite Data...okay.
Reading Custom Subscreen Data...okay.
Reading FF Script Data...okay.
Reading SFX Data...okay.
Done.
Loading Quest...

Decrypting...okay.
Opening...okay.
Reading Header...okay.
Reading Rules...okay.
Reading Strings...okay.
Reading Doors...okay.
Reading DMaps...okay.
Reading Misc. Data...okay.
Reading Misc. Colors...okay.
Reading Game Icons...okay.
Reading Items...okay.
Reading Weapons...okay.
Reading Maps...okay.
Reading Combos...okay.
Reading Combo Aliases...okay.
Reading Color Data...okay.
Reading Tiles...okay.
Reading Tunes...okay.
Reading Cheat Codes...okay.
Reading Init. Data...okay.
Reading Custom Guy Data...okay.
Reading Custom Link Sprite Data...okay.
Reading Custom Subscreen Data...okay.
Reading FF Script Data...okay.
Reading SFX Data...okay.
Done.
Loading Quest...

Decrypting...okay.
Opening...okay.
Reading Header...okay.
Reading Rules...okay.
Reading Strings...okay.
Reading Doors...okay.
Reading DMaps...okay.
Reading Misc. Data...okay.
Reading Misc. Colors...okay.
Reading Game Icons...okay.
Reading Items...okay.
Reading Weapons...okay.
Reading Maps...okay.
Reading Combos...okay.
Reading Combo Aliases...okay.
Reading Color Data...okay.
Reading Tiles...okay.
Reading Tunes...okay.
Reading Cheat Codes...okay.
Reading Init. Data...okay.
Reading Custom Guy Data...okay.
Reading Custom Link Sprite Data...okay.
Reading Custom Subscreen Data...okay.
Reading FF Script Data...okay.
Reading SFX Data...okay.
Done.
OK
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Loading Quest...

Decrypting...okay.
Opening...okay.
Reading Header...okay.
Reading Rules...okay.
Reading Strings...okay.
Reading Doors...okay.
Reading DMaps...okay.
Reading Misc. Data...okay.
Reading Misc. Colors...okay.
Reading Game Icons...okay.
Reading Items...okay.
Reading Weapons...okay.
Reading Maps...okay.
Reading Combos...okay.
Reading Combo Aliases...okay.
Reading Color Data...okay.
Reading Tiles...okay.
Reading Tunes...okay.
Reading Cheat Codes...okay.
Reading Init. Data...okay.
Reading Custom Guy Data...okay.
Reading Custom Link Sprite Data...okay.
Reading Custom Subscreen Data...okay.
Reading FF Script Data...okay.
Reading SFX Data...okay.
Done.
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!
Script attempted to reference a nonexistent NPC!

So wait, the FFC is just looping over all enemies on screen and reads its X and Y coordinates?

Why is the ZASM interpreter printing an invalid NPC reference error message? If the FFC script flawed, or is that part of the bug?

Maybe post the script?

Yeah, I've decided just touch up the quest file that has all these bugs in it and just send you that. 😉 It's uploading now.

I'm not getting any crashes, but I did fix a bug that prevented the ZASM interpreter from loading enemy 1 from any screen.

The other "Invalid NPC" errors are bugs in your script: if you damage an enemy and its HP drops below 1, the enemy is killed and removed from the screen, at which point the NPC pointer to it becomes invalid. Use isValidNPC() to check for this case.