Welcome to Tower And Dragon 3.0. Only 8K Required

For updates and new information, go to: Tower And Dragon.

Tower And Dragon 3.0 Teaser
3.0 has been released! Teaser Video (2 minutes)

For 3.0 Release Details, TAP HERE

For How To Setup, TAP HERE


The Making Of 1.0 (36 minutes)

Tower And Dragon is a classic dungeon crawling adventure with primary and offhand weapon, armor, quest storyline, moving walls, teleportation, and unique tilesets and monsters for each dungeon level. Your character starts out just after landing a boat on the shore near an ancient ruin, discovered by following a dream. The game is a tribute to the game that inspired me to become a programmer: "Dungeon" from 1979. Like Dungeon, this game only requires 8K of memory.

Tower And Dragon is written in assembly language, only requires an 8K Commodore PET, and is playable by disk drive or tape cassette on ROM1, ROM2, and ROM4 systems. You can play with more memory, but part of the design was to make sure the game would work on some of the oldest stock PET systems still around. Designing under these tight constraints was a monumental task where every byte counted.

The audio soundtrack on the splash screen uses Shiru's BuzzKick engine, converted to the PET and gives Tower And Dragon a unique and distinct audio that new games will follow. He also converted the theme music to run under BuzzKick. While the splash screen utilizes BuzzKick engine, it is not used in-game due to lack of memory. Therefore, only simple audio is utilized while in-game.

Lastly, to keep with the vintage theme, I recovered the data from maps in a game that I made as a boy in 1980. Those vintage maps are utilized for the ancient ruin in Tower And Dragon!

Norbert Landsteiner has a wonderful online PET emulator with recently released version 2.0 that includes audio. Play Online at Masswerk Emulator here: Masswerk: Tower And Dragon. This will make it easy for anyone to try out the game, as well as any other vintage programs for the PET. His powerful emulator correctly works with Back To The Pet, A Bright Shining Star, and Faulty Robots.

Player Quotes:

instructions
Additional Tips:

Release 3.0 Notes

Over the course of several months, as a hobby I found ways to optimize code and memory in Tower And Dragon(T&D). At one point I had over 300 bytes of free memory. I had not seen over 300 bytes of free memory since prior to adding audio version 0.9 beta. Programing Version 3.0 could then begin.

While I recommend simply replaying, version 3 is compatible with the version 2 save files.

New:

Technical
One critical goal that I have upheld is insurance that this game can be played easily from tape cassette. While the game is fun to play from disk drive and any PET system, tape cassette places some additional restrictions. If I removed the cassette restriction and playing only from disk drive, I could constantly load and unload code. Using this method, I could make T&D do anything and everything that a much later game like Secret of Mana does.

The reason I adhere to playing from tape cassette is the goal of this game is to allow play on a stock 2001-8 (8K) system with a tape cassette. This system was released prior to disk drives and most people never purchased a disk drive as it was too expensive and unnecessary since 8K programs load quickly from cassette.

This also means that the game plays fairly linear in order, as I don't want cassette players to constantly have to rewind and fast forward the tape cassette for non-linear progression. That said, you can go to the village to purchase upgrades. This requires a second cassette for the "village" so you can go there at any time.

Tape Buffer Reclaim
Tape buffer #1 (used for tape 1) has always been used for temporary variable storage and tape buffer #2 (used for tape 2) is used for ROM1 systems to patch the diskio so it actually works, allowing original systems to play T&D on a disk drive. However, Tape buffer #2 could be used if not on a ROM1 system and it could also be used if on a ROM1 system but playing from tape cassette. I could actually use the space for more permanent storage provided I used the opposite buffer from the tape cassette being used, so that is exactly what I did.

Code optimization
Between tape buffer memory reclaim and code optimization (more subroutines, finding small optimizations like jsr/rts to jmp, using yet even more bit operations), that placed me at over 300 bytes free. This occurred in late November and it was finally time to write some code.

During the entire process, I had to step away from it quite a bit due to tedium of no memory.

Programming

The first task was rewriting the animation code to use a simple form of compression. I then had to "rewire" the tile animations to use the new compression. I then painstakingly went through every level and animated about 90% of the creatures. Most have a combination of idle and an attack animation. I ran out of memory about 80% through this task and had to perform more code optimizations.

I had pretty lofty goals for this expansion. the original goals were as follows:

A little math and silliness: I have over 500 blocks free on a standard diskette. Each cutscene and level takes an average of 10 blocks.... So in theory I could add possibly 50 more zones. I'm not going there, and it would get boring without ranged weapons and magic, but this does mean I could realistically add my entire D&D campaign into the game...

My daughter and I play this game with the toothpaste, and who it runs out on is the loser and must throw it away. Seeing it in the garbage by the other is admission of defeat. By the time we're done with the toothpaste, it looks like it is machine pressed. My wife related the toothpaste to my search for memory and I loved it! T&D is getting really close to machine pressed.

I currently have 2 bytes free. I do know of a few optimizations I could make to free maybe 30 or 40 bytes, but to implement anyting major like ranged weapons would take several hundred bytes. There is a possibility I could shrink each zone in order to have more space to code, but I currently did not want to break up the levels I designed as a boy.

I believe my major motivator for this expansion was strictly enjoyment of doing things in small space and doing something never done before. I hope you enjoy.



The Making Of 1.0(36 minutes)


Release 2.0 Video (3 minutes)


Release 1.0 Video (3 minutes)

IndieRetroNews Release Link: IndieRetroNews: Tower And Dragon

Disk Image:

dragonNN.d64 is the Commodore PET disk image. You can simply attach the d64 file as as disk drive on Commodore PET / Commodore Business Machine (CBM) emulators such as Vice.

Tower Folder:

With Commodore PET / CBM emulators like Vice and real hardware based SD storage solutions, there are benefits to mounting the tower folder as a virtual disk rather than using the d64. By mounting the folder as a virtual drive, you can then easily backup/transfer your character save file D.SAV.

In the emulator, once the proper virtual directory is mounted, to run the game: BitFixer's PETdisk MAX 2.0 does not currently support write operations to a d64. Instead, copy the game files from the tower folder into the root of the SD or network device. You will then be able to save.

Cassette TowerAndDragonCassetteNN.wav & TowerAndDragonNN.tap:

Refer to tapeseconds.txt for seconds offsets for each file.

You may need to invert the wav and/or tap for it operate with your hardware.

If recording to tape, make sure to scroll tape through clear header first.

If playing from cassette, it is normal for the screen to be blank while loading, but it should take no longer than two and a half minutes to complete the load.

It is recommended to use a completely different tape cassette for outdoor/town since you will head back there often. This is included in TowerAndDragonCassetteTownNN.wav and TowerAndDragonTownNN.tap. This file contains outdoor, town, and then outdoor again so it is easy to enter/exit the town area.

Tapfiles:

TowerAndDragonNN.tap contains the entire set.

TowerAndDragonTownNN.tap contains outdoor, town, and then outdoor again so it is easy to enter/exit the town area.

Vice Character Transfer To New Version

Version History

Feel free to contact me jason at insanerocketry.com