ZAD Adventure System - Progress

Show us what you're working on, (preferably with screenshots).
User avatar
PROSM
Berk
Posts: 44
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Tape functions

Post by PROSM » Tue Jun 19, 2018 6:28 pm

Ast A. Moore wrote:
Tue Jun 19, 2018 6:04 pm
In that case, you don’t need to deselect all the tape loading options in Fuse. I you lead them active, it’ll save your data almost instantaneously, and will create a standard TAP/TZX file. (Note, that you’ll need to close it and open a new one, or Fuse will keep appending data blocks to the same file.)
I don't usually disable them, I just turned them off on the video for demonstration purposes, in order to make the saving and loading operations more obvious.
0 x
All software to-date

Current Projects:
Currently working on ZX Adventure Designer, which lets one create point-and-click graphic adventures for a 48K Spectrum.

User avatar
Ast A. Moore
Manic Miner
Posts: 724
Joined: Mon Nov 13, 2017 3:16 pm

Re: ZAD Adventure System - Tape functions

Post by Ast A. Moore » Tue Jun 19, 2018 6:44 pm

PROSM wrote:
Tue Jun 19, 2018 6:28 pm
Ast A. Moore wrote:
Tue Jun 19, 2018 6:04 pm
In that case, you don’t need to deselect all the tape loading options in Fuse. I you lead them active, it’ll save your data almost instantaneously, and will create a standard TAP/TZX file. (Note, that you’ll need to close it and open a new one, or Fuse will keep appending data blocks to the same file.)
I don't usually disable them, I just turned them off on the video for demonstration purposes, in order to make the saving and loading operations more obvious.
Got it. Fair enough. No problem, then. ;)
0 x
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.

User avatar
PROSM
Berk
Posts: 44
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

ZAD Adventure System - Byte-shaving

Post by PROSM » Tue Jun 26, 2018 7:35 pm

Whilst working on the editor program, I decided to rewrite part of the display code used by ZAD, specifically the region drawing code. This can draw any arbitrary region of the work-space buffer to its corresponding place onscreen. It was my original intention to have only the altered regions of the screen redrawn in order to save on the processing time required to update the screen. However, to test the system functionality quickly, I used a full-screen draw instead, intending to write the selective drawing code later.

To my surprise, the full-screen draw itself was sufficiently fast for the purposes of my game engine, so I decided to redraw the entire display on every game cycle to simplify the code. The region drawing code was still handling this full-screen draw as an arbitrary region, however, which slowed it down somewhat, as it was having to add a line offset of zero to the work-space pointer and the screen pointers at the end of each line.

I have now rewritten the region drawing code to instead do only a full-screen draw, without any of the offset adding or start address calculation. This has sped it up somewhat, since it no longer needs to check as many conditions or perform offset calculations for different sized regions.

This rewritten routine has also opened up 32 variable slots in the register map, which were previously used for storing the old positions for objects (which would have been used for the selective drawing code). This means that an extra 32 variable slots are available for use in your game's logic scripts, giving a grand total of 128 variable slots available for use (the other 128 are reserved for internal ZAD use).

I do enjoy rewriting old routines; I find that planning them on paper is the best way to accomplish this, since I can clarify my register allocation and the algorithm itself before I begin to write the code.

I hope to write another progress update soon. See you later! :D
0 x
All software to-date

Current Projects:
Currently working on ZX Adventure Designer, which lets one create point-and-click graphic adventures for a 48K Spectrum.

Post Reply