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.Ast A. Moore wrote: ↑Tue Jun 19, 2018 7: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.)
ZAD Adventure System - Progress
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Tape functions
All software to-date
Working on something, as always.
Working on something, as always.
- Ast A. Moore
- Rick Dangerous
- Posts: 2641
- Joined: Mon Nov 13, 2017 3:16 pm
Re: ZAD Adventure System - Tape functions
Got it. Fair enough. No problem, then.PROSM wrote: ↑Tue Jun 19, 2018 7:28 pmI 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.Ast A. Moore wrote: ↑Tue Jun 19, 2018 7: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.)
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.
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.
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
ZAD Adventure System - Byte-shaving
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!
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!
All software to-date
Working on something, as always.
Working on something, as always.
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
"Postie's Peril" - Demo
This project is not dead. Quite the contrary in fact, as I would like to show you a demo of the first game being written with the engine, "Postie's Peril":
[media]https://youtu.be/RE-Ctp0DezU[/media]
It's all well and good seeing the game, but why not trying it as well? The video above only shows a bit of the demo, so to get the full demo as a TAP file, click on the link below.
https://www.dropbox.com/s/8kc69arkjyhco ... o.tap?dl=0
The controls are as follows:
[media]https://youtu.be/RE-Ctp0DezU[/media]
It's all well and good seeing the game, but why not trying it as well? The video above only shows a bit of the demo, so to get the full demo as a TAP file, click on the link below.
https://www.dropbox.com/s/8kc69arkjyhco ... o.tap?dl=0
The controls are as follows:
- 6 - left
- 7 - right
- 8 - down
- 9 - up
- Enter - select
- To access verbs, simply push the key for the letter highlighted in white (e.g. A for Apply to, E for Examine. Then you can position the cursor over an object and press Enter to perform the action.
Last edited by PROSM on Sun Dec 09, 2018 10:09 pm, edited 1 time in total.
All software to-date
Working on something, as always.
Working on something, as always.
Re: ZAD Adventure System - Progress
Love it—this is something special. The control mechanism takes a bit of getting used to, but the instructions are all very clear. Please finish it!
Re: ZAD Adventure System - Progress
Looking excellent! One of the very few things the Spectrum did not achieve so far, and it looks like you will do it
Re: ZAD Adventure System - Progress
Looks nice!
And feels a bit similar to early Lucas games like Maniac Mansion or Zak McKraken. Spectrum never had this kind of games, unlike let's say C64. So at last this is going to change, I guess
And feels a bit similar to early Lucas games like Maniac Mansion or Zak McKraken. Spectrum never had this kind of games, unlike let's say C64. So at last this is going to change, I guess
Re: ZAD Adventure System - Progress
Love it!
Testing it quickly, one small suggestion I can make is to leave the inventory item position when you close the list. This way, when you can't use an item because you are not close enough or any other reason, you don't need to search the inventory again for the item.
Testing it quickly, one small suggestion I can make is to leave the inventory item position when you close the list. This way, when you can't use an item because you are not close enough or any other reason, you don't need to search the inventory again for the item.
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Progress
Thanks, R-Tape! The controls are a bit fiddly at first, but they do get easier to handle with time. An inlay will be included with the full game, with all the instructions, but I'm glad you found my post had enough info to get you going.
Thanks, Ivan! I've always felt the Spectrum was missing a point-and-click adventure; the main sticking point seemed to be how to do the graphics in the small memory (this was a major theme of the "Monkey Island on Spectrum" thread at WoS).
Many thanks, Ralf!
Thanks for the suggestion, druellan! I've implemented this functionality now (however, the list position resets when items are transferred in or out of the inventory).druellan wrote: ↑Mon Dec 10, 2018 4:47 pm Love it!
Testing it quickly, one small suggestion I can make is to leave the inventory item position when you close the list. This way, when you can't use an item because you are not close enough or any other reason, you don't need to search the inventory again for the item.
All software to-date
Working on something, as always.
Working on something, as always.
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Progress
Thanks [mention]oblo[/mention] for your kind comment! In regards to a mouse driver, I may implement one. I'm trying to avoid touching the engine code now, so that I can focus on the game itself, but if I can get it working quickly enough, then there will be Kempston mouse support.
All software to-date
Working on something, as always.
Working on something, as always.
Re: ZAD Adventure System - Progress
This has gone a long way. from the initial screens.
Hoping to see this finished in the near future.
Hoping to see this finished in the near future.
Re: ZAD Adventure System - Progress
I agree.
Looking forward to writing a game with this - I'll probably write a Reality-On-The-Norm game (an old Adventure Game Studio group project).
But only if the movement controls are customizable to ZXKM.
So we can start work, what are the maximum main character sprite dimensions?
Here's Mika Huy, reporter for the Realizer, reduced to 40px high:
Looking forward to writing a game with this - I'll probably write a Reality-On-The-Norm game (an old Adventure Game Studio group project).
But only if the movement controls are customizable to ZXKM.
So we can start work, what are the maximum main character sprite dimensions?
Here's Mika Huy, reporter for the Realizer, reduced to 40px high:
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Progress
The maximum dimensions for any frame is 32x16 characters (so 256x128 characters). Of course, this is if memory will permit, as the amount of memory a frame will take can be calculated using the formula m = 2wh + 2, where w is the width and h is the height.Kweepa wrote: ↑Thu Mar 07, 2019 12:08 am I agree.
Looking forward to writing a game with this - I'll probably write a Reality-On-The-Norm game (an old Adventure Game Studio group project).
But only if the movement controls are customizable to ZXKM.
So we can start work, what are the maximum main character sprite dimensions?
Here's Mika Huy, reporter for the Realizer, reduced to 40px high:
Your graphics might not work too well, though, as the game display is an emulated character mode. This means that all of the backgrounds and frames are built up of tiles from a universal character-set (of 255 characters, with one reserved for blank). This measure is necessary in order to reduce the memory used by graphics. Those three sprites above would make up 30 characters in the set, or about 12%. You may want to reconsider redesigning the graphics, perhaps making them bigger so that they can be designed around the character block limits.
All software to-date
Working on something, as always.
Working on something, as always.
Re: ZAD Adventure System - Progress
Ah yes, I see. I'd be willing to use up half my character set to realize the main character!
(Any progress on the engine?)
(Any progress on the engine?)
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Progress
Version 1.0 of the engine (for Postie's Peril) is finished. However, after that game is done, I want to make some changes to the code - there are some ugly hacks in there (both the engine and the game's logic scripts) due to me forgetting to include certain things in the original design.
All software to-date
Working on something, as always.
Working on something, as always.
- Einar Saukas
- Bugaboo
- Posts: 3147
- Joined: Wed Nov 15, 2017 2:48 pm
Re: ZAD Adventure System - Progress
Is it available somewhere?
I would like to add it to our archive!
- PROSM
- Manic Miner
- Posts: 476
- Joined: Fri Nov 17, 2017 7:18 pm
- Location: Sunderland, England
- Contact:
Re: ZAD Adventure System - Progress
Wow, this is quite a necropost!Einar Saukas wrote: ↑Sat Aug 28, 2021 11:35 pmIs it available somewhere?
I would like to add it to our archive!
I must admit that I stopped working on ZAD after December 2019, due to a lack of motivation. It was going to be a lot of work, since the engine was going to be restructured, and I needed to write an editor program and compiler. In its current state, you can only write your games by hand, with a set of PASMO macros acting as the scripting language. As such, I'm not sure how useful it would be to anyone, but I can always upload it (plus the source code for the Postie's Peril demo) for historical interest. I'll need a bit of time to make sure it's all properly documented, though.
I might yet return to ZAD at some point in the future, with the experience I've gained, but for now I have other projects which are coming along quite well.
All software to-date
Working on something, as always.
Working on something, as always.