Archive for June, 2007

DreamZZT for Nintendo DS

June 30th, 2007 4 comments

© All Rights Reserved.

I’ve ported DreamZZT to the Nintendo DS. It scrolls the game board around as you move, similar to SuperZZT. You can also hold the R button and use the d-pad to scroll around the screen. Text windows have been resized to fit the DS’s screen, so long lines will be wrapped.

You can grab an early beta here. It runs a bit fast, has no sound, and stops drawing the background colors half-way across the board, but it’s playable. There’s no file browser yet, so it automatically loads “town.zzt” from the root of your card. I’ve tested it with my M3 miniSD cart, I’m not sure what other flash carts are supported.

DreamZZT DS photoset on Flickr

DreamZZT for Windows 98

June 19th, 2007 Comments off

I’ve just re-uploaded the DreamZZT lite installer with an exe that supports Windows 98 in addition to 2000 and XP. Users of old computers rejoice!

DreamZZT Lite

June 19th, 2007 Comments off

Got a PC without 3D acceleration? Introducing DreamZZT Lite, which uses SDL instead of OpenGL to draw the screen.

A test version is available for Windows 2000 / XP: DreamZZT-lite 3.0.8. The debug console is disabled, otherwise it should run the same as the normal 3.0.8 release. This build also includes the experimental Lua interpreter, but I’m not officially supporting it yet.

Let me know if it does / doesn’t work on your systems.


June 18th, 2007 Comments off

Heh, I finally broke 100,000 points in DCSquares, beating Brian’s score of 95,084. I have no idea how the top players manage to break 200,000, you guys must be ninjas. And the #1 guy that broke 600,000 must have used his $300 silk surplus refund to purchase and drink 100 cups of coffee.

Virtual Console

June 18th, 2007 Comments off

I finally broke down and bought some Wii Virtual Console games:

* Sonic the Hedgehog 2: I have this cart for the Genesis but it only works about 20% of the time. Now I can play without worrying about it freezing up! And I don’t have to play the whole game in one sitting, since the Wii saves the game state when you return to the home screen.

* Toejam & Earl: Panic on Funkatron: We had this for the Genesis a long time ago, it was pretty fun. Carly is still mad I sold the original cartridge years ago.

* Dragon’s Curse: This is the TurboGrafix 16 sequel to Wonderboy in Monsterworld which Jay and played on the Genesis a few years back.

* The Legend of Zelda: A Link to the Past: We were a SEGA house growing up, so I didn’t get to play this on the SNES. I’ve attempted to play it on emulators a few times but it’s always a hassle. Maybe I’ll actually stick with it on the Wii.

DCSquares Facebook Application

June 11th, 2007 Comments off

I’ve updated the DCSquares Facebook application. You can now submit score codes from the Facebook app, no need to visit the regular DCSquares site. Of course, the easiest way is to just have DCSquares submit the scores for you.

Go directly to jail

June 10th, 2007 1 comment

Sam: vid-yuh games
Gil: i played some today, yes
Sam: lies
Gil: no i did, i beat a game
Sam: was the killer you?
Gil: well, you have to kill to beat the game, yes
Sam: gil. you’re playing monopoly totally wrong.
Gil: heh, but i really wanted park place

DCSquares gets social

June 10th, 2007 Comments off

Introducing the DCSquares application for Facebook:

Post your rank on your profile, and compare your scores with your friends! Check it out!

Lua 5.0 in DreamZZT

June 5th, 2007 2 comments

ZZT-OOP is fine for simple scripts, but it’s very dated and not very powerful. Starting with DreamZZT 3.2, another scripting language will be available in addition to ZZT-OOP: Lua 5.0. Lua supports functions, variables, and file access, among other things.

Creating a Lua object using a 3rd party editor is as simple as creating a ZZT-OOP object that executes “#become lua”. DreamZZT will then run everything past that line as a Lua script instead of ZZT-OOP. Of course, if DreamZZT ever gets a text editor, or if someone adds the Lua object type to KevEdit, you’ll be able to create Lua objects directly.

Here’s a simple example of using Lua from within DreamZZT:

#become lua
function main()
set_msg("Here, the player, have some health")

And a more advanced example that handles more than one message:

#become lua
function main()
local msg = nil
local them = nil
while true do
while (msg == nil) do
them,msg = pop_message(me)
if(msg == "shot") then
set_msg("Ouch! I was shot by a " .. .. "!")
if(msg == "touch") then
set_msg("That's my purse! I don't know you!")

Note that you must call coroutine.yield() inside your loop to pass control from your script back to the game engine. The set_msg(), move() and wait_for_message() functions automatically call coroutine.yield() for you. Also note that the Lua implementation is using a message queue, so you don’t have to worry about locking and unlocking your objects like you do with ZZT-OOP.

For a more complex example, I’ve rewritten the DremZZT Tutorial in Lua, which you can view here. You can compare it to the original ZZT-OOP code to get an idea of what the new functions do. You’ll also notice that Lua has full access to the TUIWindow class, so you’ll be able to use text entry fields, check boxes, etc. from inside your games.

The Lua interpreter and updated tutorial are in the svn trunk, however saved games containing Lua objects created on PowerPC Macs are not compatible with other platforms and vice versa, due to how that CPU stores data. This issue will be resolved eventually, but right now just don’t transfer saves between PowerPC Macs and the rest of the world 🙂 For information on checking out and building DreamZZT from svn, see Building DreamZZT from Source.

DreamZZT 3.0.8

June 2nd, 2007 Comments off

DreamZZT 3.0.8 is released!


New Features

  • Sound support for Dreamcast
  • Support STK-colored torches, ammo, energizers
  • Uses system clock for improved game timing
  • Game speed and volume can be adjusted from title screen
  • Integration with the Trac ticket system for in-game bug reports
  • Optimized rendering to improve performance
  • Mission:Enigma is now completable
  • Auto-update support for Windows

Bug Fixes

  • Centipede segments harm player (#23)
  • Centipedes could become disconnected if shot by an enemy (#27)
  • Board transitions may not work properly after saving (#39)
  • Change object search order to match ZZT (#13)
  • Support stat-less objects (#29)
  • Handle backspace key in debug console
  • ZZT-OOP objects could still receive messages when locked (#48)