DreamZZT 3.0.8 and DreamZZT-lite

Discuss how totally awesome Bang! is here.

Moderator: Terryn

c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

I suppose that would be more efficient than drawing both boards during the transitions. I'll have to add horizontal scrolling to my text lib and then that method would work. Thanks!
Nedemai
Z2 Freak
Posts: 12
Joined: Fri Aug 19, 2005 7:30 pm

Post by Nedemai »

Seventhshade pointed this threat out to me. Just want to mention Im working on a ZZT game player for the GBA. Its in very early stages and Im creating it from ground up. So far all it can do is load a board file into memory so that it appears properly on screen. You can move a sprite around (the player) which autoscrolls for proper positioning. Nothing else has yet been added.

If anyone wants a demo contact me somehow.
User avatar
zamros
my power level is enormous
Posts: 543
Joined: Thu Mar 20, 2003 9:34 pm

Post by zamros »

dude, i wouldn't mind a fuckin' demo, i could load that shit up on my xbox and play zzt on tv...
c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

Get a Dreamcast and you can play DreamZZT on your TV :-P
Nedemai
Z2 Freak
Posts: 12
Joined: Fri Aug 19, 2005 7:30 pm

Post by Nedemai »

If you want to check out what I have created for GBA so far

http://www.sendspace.com/file/0e4eyn

it will only be hosted on this link for about 15 days, its at the bottom of the page.

It doesn't do much. It loads a single board file(which is built into the rom) then allows a sprite to be moved around screen. Nothing else, not even a way to detect collisions yet (which Im in the middle of doing).

It will run on real hardware (via a flashcart) or an emulator. If you want to see some of my debug stuff press the L and R buttons.

Have fun if fun is to be had!

edit; better description
User avatar
Saxxon
the Gargoyle.
Posts: 608
Joined: Tue Jul 25, 2006 10:02 am
Contact:

Post by Saxxon »

Nedemai wrote:If you want to check out what I have created for GBA so far
http://www.sendspace.com/file/0e4eyn
There's a board embedded in that rom file. But wouldn't you save so much more space if you stored it as bytes instead of dwords?

EDIT: Just tested this. That is pretty hot. For some fun, move the character off the left side of the screen.
Nedemai
Z2 Freak
Posts: 12
Joined: Fri Aug 19, 2005 7:30 pm

Post by Nedemai »

Im still learning C as I go with this and everything is still unoptimized. Eventually I plan to reduce the amount of space used.

Also when you move the character off the left side of the screen the sprite turns into a 64x64 sprite with horizontal and vertical flipping. Just the way the gba wraps its memory :P
c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

I've put together a new build of DreamZZT if you want to play around with the SuperZZT support.

Known issues with this build:
* Rapid firing is broken, tap the fire button instead of holding it
* DS will freeze upon touching the door for level 2 of Monster Zoo
* SuperZZT games cannot be edited or saved
* R-trigger scrolling on DS is temporarily disabled
* SuperZZT-specific enemies are not yet implemented
* As this is a beta release, DreamZZT Online will connect to my internal server, not the public server.
* Patterns are not visible in the editor

Downloads:
DreamZZT-lite for Windows
DreamZZT for Mac
DreamZZT DS

If people are interested in Linux or Dreamcast builds, let me know. Otherwise Windows, Mac, and DS should cover pretty much everyone here.

New features:
* SuperZZT support
* Slime and Ricochet objects
* Optimized the board updating, the order should be closer to ZZT's now

For a full list of changes for this and future 3.1.x releases, see milestone 3.2.0.
User avatar
Saxxon
the Gargoyle.
Posts: 608
Joined: Tue Jul 25, 2006 10:02 am
Contact:

Post by Saxxon »

By the way, here's how to determine when a stat object is "up" -- meaning it's time to process... Keep in mind for this that every time you process one cycle in ZZT, increase the cycle counter by 1. This is exactly how it is seen in ZZT. (% is the modulus operator in C, I hope. :) )

(((CycleCounter + ObjectNumber) % ObjectCycle) = 0)

When this statement is true, process the cycle. This is why when you place a whole bunch of conveyors or transporters or anything else that animates on a board, they don't all animate at the exact same time. I don't recall how the ZZT cycle counter flips back to zero, but I think it's when the unsigned integer limit is reached (65535->0)

Also, forests in SuperZZT turn to floors instead of empties.

And sometimes it seems like rivers get processed twice. Rivers should only ever move you one character at a time, and not diagonally. Try using a river that goes south, then west. I ended up moving diagonally in one move.

Conveyors only move you if it can move you onto an empty. Fakes and floors don't make you move.

Just a few things I think would make this a lot more accurate :)
c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

Processing multiple lakes: fixed (forgot the "else" in the ifs)

ZZT update cycle: fixed (this also fixed, rapid fire)

Forests into floors: fixed

Conveyors: kind-of fixed. I found an interesting bug in SuperZZT while testing, sometimes it'll pull you off a floor and sometimes it wont. Also, if you walk from a floor to an empty next to a conveyor, it'll pull you and sometimes delete the floor that was under you.

DreamZZT will always pull you off a floor if there's an empty to move you to, and will never randomly delete the floor under you.

Additional fixes:

Adjust slime speed. Slimes of speed 1 still spread too fast, but other speeds seem right now.

The new update code required fixing the following objects: lasers, bombs, explosions, animated water.

Disable editor keyboard handler while debug console is visible.

Thanks for the feedback!
c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

Hmm ok I see why the DS is freezing while trying to use passages in SuperZZT, it's the same reason it can't currently do the slide transition between boards -- not enough memory to hold two decompressed boards in RAM.

Currently when you touch a passage, the passage decompresses the destination board so it can move the player on that board into the right spot, then it triggers the board switch. I've adjusted it to compress the source board before searching the destination board, now the DS can get to level two in monster.szt :)

Updated builds:
DreamZZT 3.1.443 for Windows
DreamZZT-lite 3.1.443 for Windows
DreamZZT 3.1.443 for Mac OS X
DreamZZT 3.1.443 for Nintendo DS
Seventh Shade
secret sauce
Posts: 129
Joined: Sun Feb 22, 2004 10:38 pm
Location: MO :(

Post by Seventh Shade »

Do you think it's possible you could have those super zzt enemies that don't move (dragon pups and pairers) actually do something? I don't think it would affect compatability with any games because they weren't actually used in any games (that I can remember).
User avatar
Saxxon
the Gargoyle.
Posts: 608
Joined: Tue Jul 25, 2006 10:02 am
Contact:

Post by Saxxon »

Dragon pups were in Monster Zoo. Not sure about Pairers.
User avatar
Kjorteo
^o.O^
Posts: 432
Joined: Sat Feb 28, 2004 10:59 am
Location: Kjorteoville or something
Contact:

Post by Kjorteo »

Historically, the community hasn't been very kind to changes in the games themselves. It always starts out noble enough--a bug fix here, a memory limit increase there, removing the "Gems give you health!" message over there...but then it inevitably reaches the point where that's what MegaZeux is for, and people go back to good old mostly-working ZZT 3.2.

I am unaware if SuperZZT has this problem, because I was unaware that anyone actually used SuperZZT. Maybe SuperZZT itself occupies that uncomfortable grey area between ZZT and MZX and no one uses it because everyone uses one or the other. All I know is that Seventh Shade is playing with fire, treading into dangerous territories from which no developer before him has (successfully) emerged.
"You're alive," said the maker, and smiled at the aardvark.

<Kjorteo> "yiff"
<gbelo> Wanna yiff.
<Kjorteo> yes
<gbelo> No no no.
c99koder
Ordinery
Posts: 46
Joined: Sat May 13, 2006 8:06 pm
Location: East Windsor, NJ
Contact:

Post by c99koder »

Code: Select all

if(gemmsg==0) {
	gemmsg=1;
	set_msg("Gems give you Health!");
}
That's not going anywhere any time soon :-D

As for changing the enemies I agree with the others here, it would be best to keep the predefined items as they are. However, the Lua script interpreter in DreamZZT will make it pretty easy to write your own more complex enemies instead of relying on built-in ones. You can create a script, say "better-roton.lua", and just include() that for all the objects you want to run that code. I'll start documenting that more when I'm happy with the Lua bindings, right now there's still a bit more I have to finish.

On an unrelated note, I started playing SuperZZT (I only played it briefly like 10 years ago lol..) and made a few observations.. the gems seem to give you a lot more health than they did in ZZT, I'll have to check exactly how much they give you. Also, bears only give you 1 point instead of 2 when you shoot them. I'll have to check to see if that's something I overlooked in ZZT too, I thought all enemies were worth 2 points.

Has anyone gotten SuperZZT to run in DosBOX? VMWare doesn't support 40 column mode, so the game looks a little weird in there. Also, VMWare is slow and overkill for SuperZZT. Maybe I'll put Win98 on one of my old boxes, or dig out the Tandy 1000 HX and play it in MS-DOS.
Post Reply