ZZT Unlimited
Posted: Thu Apr 02, 2009 6:05 am
So, while I wait for a particular free host I've signed up for to actually get my hosting working, I'm going to start a thread here.
Stuff that's supported so far:
- As many stats, flags, and bytes as your computer can handle.
- Player clones.
- Duplicators and the Koopo bug (minus the bit where it fucks up a stat item - i'll put that in if it's REALLY necessary).
- Off-board touching. The illusion bug works, too. In fact, all of the Anyboard Transport things and the Nextboard Transport in ZZT Encyclopaedia 3C work.
- Paused transport, although I don't know of any uses for it so far.
- Pushing through transporters and the statted empty trick.
- Lions, tigers, and bears, oh my... and ruffians
- Spinning guns, slimes, ricochets, and BOMBS! KABOOM!
- Lots of ZZT-OOPness, though not everything. No #throwstar or #play so far, and the #if poop$Hello! trick does not work.
- Saves! ...sorta. Only saves to zztu.sav for the time being, though. AFAIK it doesn't rebind stuff, so... ugh. Also, it doesn't load up any flags.
- Custom fonts. Including COMMFONT.COM, now!
- Speed adjustment. Speed 0 is a bit buggy, though :/
- It tells you when ZZT would normally crash (other than memory issues)! And if you remove the crash protection in pushtiles(), it WILL crash! (Eventually. The crash (duplicate pushable onto player) is due to a stack overflow from calling a function within a function repetitively when you try to push the player nowhere, AFAIK. Well, that's what it does here!)
Stuff which needs doing:
- Centipedes. Also, sharks, but that'll probably come before I get centipedes working.
- Hopefully getting the ZZT-OOP parser to the level of bugginess of ZZT itself.
- As mentioned above, make saving worthwhile. Load the damn flags (yes you can save more than 10 flags), bind the damn objects, and link the damn centipedes... actually, get the damn centipedes working first.
- Sound. I'll probably do this via OSS rather than via Allegro.
- Starting the program with the title screen, then pressing P to play.
- Custom palettes.
- Some animations (transporter, conveyor, duplicator) don't use the right chars.
- Timing model may need to be adjusted, as you get stuck in Teen Priest after you escape being held hostage by Loco's gang.
- Weird unknown trailing newlines in messages or something like that. I think this is fixed.
- Get some movements fixed. Conveyor belts and some of the guys in "Terrorist Tower" (you'll see) are bugged.
Stuff which could be good:
- An editor, which will hopefully be able to load up "board libraries" so you can copy from them and paste onto the board... STK, anyone? I'll probably also have a "*K*olor dialog[ue]", a stat editor, and some other juicy stuff. But this would be quite a project.
Stuff I have no intention of doing:
- In ZZT, when the 150th object shoots, it moves instead. This relies on ZZT's stat limit which I refuse to emulate.
- Lua scripting. This is me having a poke at the DreamZZT crew. By the way, the bomb + pusher puzzle in City of ZZT works on ZZT Unlimited, so hah :P although pretty much everything else is bugged :/
KevEdit hack:
If you have KevEdit, and have compiled it from source, change the instance of 150 in src/libzzt2/zzt.h to 1500.
Also, change this line (may do more harm than good; I have not confirmed this but it seems to be OK):
u_int8_t index; /* Position of param in list */
to:
u_int16_t index; /* Position of param in list */
It's in a struct.
Then recompile. If it has worked, try flooding the screen with lions or players.
WARNING: KevEdit does not like it very much, though! You can lock it up and lose your data. To prevent this, don't floodfill over a bunch of statted objects. Also, it has a tendency to segfault after you quit. With the second fix, it can segfault when you attempt to floodfill, rather than when you save.
EDIT: Now available at: http://iamgreaser.sandboxhost.com/zztu/
Stuff that's supported so far:
- As many stats, flags, and bytes as your computer can handle.
- Player clones.
- Duplicators and the Koopo bug (minus the bit where it fucks up a stat item - i'll put that in if it's REALLY necessary).
- Off-board touching. The illusion bug works, too. In fact, all of the Anyboard Transport things and the Nextboard Transport in ZZT Encyclopaedia 3C work.
- Paused transport, although I don't know of any uses for it so far.
- Pushing through transporters and the statted empty trick.
- Lions, tigers, and bears, oh my... and ruffians
- Spinning guns, slimes, ricochets, and BOMBS! KABOOM!
- Lots of ZZT-OOPness, though not everything. No #throwstar or #play so far, and the #if poop$Hello! trick does not work.
- Saves! ...sorta. Only saves to zztu.sav for the time being, though. AFAIK it doesn't rebind stuff, so... ugh. Also, it doesn't load up any flags.
- Custom fonts. Including COMMFONT.COM, now!
- Speed adjustment. Speed 0 is a bit buggy, though :/
- It tells you when ZZT would normally crash (other than memory issues)! And if you remove the crash protection in pushtiles(), it WILL crash! (Eventually. The crash (duplicate pushable onto player) is due to a stack overflow from calling a function within a function repetitively when you try to push the player nowhere, AFAIK. Well, that's what it does here!)
Stuff which needs doing:
- Centipedes. Also, sharks, but that'll probably come before I get centipedes working.
- Hopefully getting the ZZT-OOP parser to the level of bugginess of ZZT itself.
- As mentioned above, make saving worthwhile. Load the damn flags (yes you can save more than 10 flags), bind the damn objects, and link the damn centipedes... actually, get the damn centipedes working first.
- Sound. I'll probably do this via OSS rather than via Allegro.
- Starting the program with the title screen, then pressing P to play.
- Custom palettes.
- Some animations (transporter, conveyor, duplicator) don't use the right chars.
- Timing model may need to be adjusted, as you get stuck in Teen Priest after you escape being held hostage by Loco's gang.
- Weird unknown trailing newlines in messages or something like that. I think this is fixed.
- Get some movements fixed. Conveyor belts and some of the guys in "Terrorist Tower" (you'll see) are bugged.
Stuff which could be good:
- An editor, which will hopefully be able to load up "board libraries" so you can copy from them and paste onto the board... STK, anyone? I'll probably also have a "*K*olor dialog[ue]", a stat editor, and some other juicy stuff. But this would be quite a project.
Stuff I have no intention of doing:
- In ZZT, when the 150th object shoots, it moves instead. This relies on ZZT's stat limit which I refuse to emulate.
- Lua scripting. This is me having a poke at the DreamZZT crew. By the way, the bomb + pusher puzzle in City of ZZT works on ZZT Unlimited, so hah :P although pretty much everything else is bugged :/
KevEdit hack:
If you have KevEdit, and have compiled it from source, change the instance of 150 in src/libzzt2/zzt.h to 1500.
Also, change this line (may do more harm than good; I have not confirmed this but it seems to be OK):
u_int8_t index; /* Position of param in list */
to:
u_int16_t index; /* Position of param in list */
It's in a struct.
Then recompile. If it has worked, try flooding the screen with lions or players.
WARNING: KevEdit does not like it very much, though! You can lock it up and lose your data. To prevent this, don't floodfill over a bunch of statted objects. Also, it has a tendency to segfault after you quit. With the second fix, it can segfault when you attempt to floodfill, rather than when you save.
EDIT: Now available at: http://iamgreaser.sandboxhost.com/zztu/