Page 1 of 1

Project: Textmode to Graphicsmode emulator .... POSSIBLE?

Posted: Wed May 28, 2008 3:40 am
by Smilymzx
I am quite expireinced at hacking ZZT now, But there could be a new must-have: extensively hacking ZZT via DOS TSR program (very much like the dead and now-disappeared EZZT). I always used and loved HEXIT as a ZZT hacking program.

Hexit is in google if you type Hexit by M K Lasson

This might happen: A possible Multi-colored font in ZZT(80x25 graphics mode) and SuperZZT(40x25 graphics mode). But there is a couple of problems:

How can I change ZZT into Graphics mode (Possible for me, I will look it up later)

If so, How can I:

*Run ZZT in Qbasic (or make a few PEEKs and POKEs to ZZT using a TSR created with Qbasic while finding addresses using Hexit)

*Make/find a Multi-colored font (Routine and editor, ASM or Qbasic)

That should be it, I think this project will improve ZZT a lot, I am going to create both VGA and EGA versions (for Normal and Retro computers) and make a extended palette editor if I can.

Thanks goes to DOSBOX and Console2 (from Sourceforge) for inspiring me for this upcoming ZZT project (OF THE FUTURE!)

Ideas and more VGA/EGA/ASM/QBASIC45 info/routines/editors (Besides other programming languages) would be acceptible.

Posted: Wed May 28, 2008 3:52 am
by zamros
do it

Posted: Wed May 28, 2008 6:07 am
by Smilymzx
zamros wrote:do it
Oops, I forgot that I am going to Oregon without computer for 4-5 days, So I will be back.

(BTW: This is not a joke, I will be working on it, Really!)

Posted: Wed May 28, 2008 4:19 pm
by Commodore
you should see if you can get szzt to run in 80 column mode,

Posted: Sat May 31, 2008 1:00 am
by Smilymzx
Commodore wrote:you should see if you can get szzt to run in 80 column mode,
'

Not unless anyone disassembles ZZT and SZZT in a reassembleable format (NASM, ect.)

Otherwise, It does not look right!

Posted: Sun Jun 01, 2008 4:31 pm
by nps
atrocity did it, ask him

Posted: Mon Jun 02, 2008 6:11 pm
by Smilymzx
Dean Kerr aka nps wrote:atrocity did it, ask him
Is this a Joke? If not, I will tell him.

Tell me here if it is a Joke!

EDIT: Kev might have a disassembly:

http://kvance.livejournal.com/2002/01/24/

I might email him to see if he can distribute it (or lend it to me privately)

Either that, or someone else can ask him by email and say it is by popular demand!

Posted: Tue Jun 03, 2008 2:06 am
by Commodore
i don't think anyone has successfully disassembled zzt into anything resembling readable.

Posted: Tue Jun 03, 2008 7:43 am
by Dr. Dos
one time I tried digging around ZZT and trying to find the :restart it puts on top of everything and changing it to :r #bind x so you could #put an object and the only code it would have is to bind x and then you'd have an object named X and be able to #put an object with code.

Posted: Tue Jun 03, 2008 7:58 am
by Commodore
a noble idea. I tried to hexedit wolf3d once and was woefully overwhelmed.

Posted: Tue Jun 03, 2008 9:15 pm
by Quantum P.
Dos, that would be awesome.


As for SuperZZT in 80-column mode, here's my thoughts:

Changing the screen mode: Just changing to an 80-column text mode is easy enough, but it's going to screw up the graphics. As an analogy, think of what happens when you resize a word-wrapped document. If there's any ASCII art in that document that depends on the word wrapping, it's not going to look pretty.

The good news is that there should be one or more 40s in SuperZZT which can be changed to 80s to solve the problem. To modify a character on the screen, you need to figure out where that character is in video memory, and that usually involves a multiplication by the screen width. It'll be harder if the compiler reduced the multiplication to a series of bit shifts, but even that shouldn't be too hard to fix.

Using all 80 columns: Seeing as SuperZZT already supports boards larger than the screen, this should be just changing the bounds on whatever loop redraws the playing area, as well as the code which controls scrolling the board. The main issue here is that due to the increased width of the playing area, SuperZZT may try to draw portions of the board that are off the edge of the board.

Cosmetic issues: The loops which initially color the screen blue and draw the border around the playing area also need to be changed. Also, ideally the board would be scrolled such that the player started out in the center of the screen.