Anyone interested in converting AGD to the Dragon/CoCo?

A place to discuss everything Dragon related that doesn't fall into the other categories.
Post Reply
jmk
Posts: 65
Joined: Fri Mar 20, 2009 1:12 am

Anyone interested in converting AGD to the Dragon/CoCo?

Post by jmk »

AGD (Arcade Game Designer) is a tool for the Spectrum (by Jonathan Cauldwell), which you can use to make games for the 48K. Mostly platformers and shoot-em-up, it has a degree of flexibility.

It is being converted to the PC, which leads to the possibility of having it target other machines... like the Dragon or CoCo! You'd certainly be able to fit the current 48K games into a 64K, with the added bonus that the Spectrum is 256*192 as well.
Link

If you follow the links you'll see that there are 10 games that could be ported...
Games

I personally don't want to commit myself, as I've got too much going on at the moment, but I hope someone else will consider it!

I'll post the same message on CoCoGameDev as there's obviously a lot of overlap between the two machines.
jmk
Posts: 65
Joined: Fri Mar 20, 2009 1:12 am

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by jmk »

There's a little bit of interest being shown on the CoCo Dev forums and I've been alerted to some rather good video tutorials of the Spectrum version:
http://www.randomkak.blogspot.co.uk/p/a ... rials.html

Don't get left behind! ;)
oss003
Posts: 25
Joined: Sat Jun 23, 2018 12:01 pm

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by oss003 »

Hi guys,

I'm new to the forum but want to explain a bit about AGD because I ported AGD to the Acorn Atom.
The Acorn Atom has the same video processor as the Dragon, the 6847.

Jonathan Cauldwell has written a program called Arcade Game Designer for the ZX Spectrum. It's a game creation program with build-in editors. You can define a font, objects, sprites, blocks, screens and add event based script commands describing how the game runs. You can start the game from the menu for testing. The program is written for a ZX Spectrum 48/128KB. It's a nice program with a good engine and a lot of games are written with AGD. If the game is ready, you can save it in a tapefile as stand alone game which runs without the editors. AGD can be downloade here: https://jonathan-cauldwell.itch.io/arcade-game-designer

Jonathan has also written an editorless compiler running in Windows. This compiler needs 2 files to generate a game: a game engine and a script file. The script file is compiled to an assembler file and merged with the game engine file. A Z80 assembler source file is generated which can be compiled to Z80 code. This is very interesting for porting AGD to the Atom because if I can convert the game engine to Atomic 6502 code and change the compiler to generate 6502 assembler from the script file, you have an assembler file which can be compiled to 6502 code.

The big advantage is that the engine file is system dependent but the game itself, written as a script file, can be easily ported.
So the AGD system consists of:

- an general game engine file with routines to manage the game
- a game specific script file with font-, objects-, sprites-, blocks- and screen data and commands describing the game

The engine file can't be 100% compatible with all ported systems due to resolution-, colour- and memory differences. The script commands however can be 100% compatible so this means to run a game, you have to change the data and compile it for your system.

For now I have a working Acorn Atom port with more than 50 games working. You can see some examples here:

ZX Spectrum version Terrapins: https://www.youtube.com/watch?v=ea_dsXmjL90
Atom version Terrapins: https://www.youtube.com/watch?v=Vh4ykI0H0iE&t=53s

ZX Spectrum version Dodgy: https://youtu.be/pyMmxWgJLTo
Atom version Dodgy: https://youtu.be/P9hZtE3y31M

A lot of tests of games: https://www.youtube.com/user/oss003/vid ... subscriber

There are about 150 games written in AGD ready to be ported: https://spectrumcomputing.co.uk/index.p ... 6&id=20176

At the moment Tony Tompson is writing an AGDX suite in which you can design your tiles, objects, sprites and screens.
You can also write the game scripts and the goal is to compile the game to different systems.
For now a ZX Spectrum, CPC and Acorn Atom port are available and more to come, eg. BBC and Atari.
So if a Dragon port is available, a whole lot of new games are available.

What has to be done to port AGD:
- Write a Dragon based engine
- Change the script compiler to produce 6809 assembler.

If anyone is interested in helping to create a Dragon port, please contact me because there's an AGD group where the AGDX Studio is developed and technical questions can be answered. I must say that it was fun to create an Atom port and the result is a lot of new games.

Greetings
Kees
Last edited by oss003 on Sun Jun 24, 2018 7:57 pm, edited 1 time in total.
User avatar
robcfg
Posts: 1529
Joined: Sat Apr 04, 2009 10:16 pm
Location: Stockholm, Sweden
Contact:

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by robcfg »

Hi,

I was taking a look at it due to the CPC version, but I haven't had time at all to get into it.

I could say that I'll take care of it, but I don't know when will I have time for it as I'm moving from Spain to Sweden.

That said, I'm available if you have any questions.

Regarding AGD itself, I think it's an interesting idea and if it helps make more new games for the Dragon, then we should port it.

Cheers,
Rob
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by pser1 »

Wow, that's a nice project!
I would like to get involved in it just to 'refresh' how I managed to port "the Hobbit" ;-)
Unfortunately (I should better say fortunately) I have two projects going on
- Waiting for Jim Brain's betatesters to close the Flash-Eeprom Manager I programmed.
Last version works on Dragon/Tano and CoCo1-2-3. Hope to close it definitely very soon!
- Another one that implies two 'modern' modules:
The CoCo-VGA (by Brendan Donahe) and the MOOH (by Tormod Volden)
It is very challenging to have the Dragon using the new text and graphics modes of the CoCo-VGA
and managing the extra 512k of RAM and reading/writting to the SPI SDHC of the MOOH
Anyway, if anyone enters the project, I will gladly contribute as much as possible
cheers
pere
oss003
Posts: 25
Joined: Sat Jun 23, 2018 12:01 pm

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by oss003 »

Nice .....

I have 2 source codes, the original one in Z80 code and my conversion in 6502 code of the engine.
Is there a utility to convert Z80 or 6502 code to 6809 code?

Greetings
Kees
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by pser1 »

oss003 wrote:Nice .....
I have 2 source codes, the original one in Z80 code and my conversion in 6502 code of the engine.
Is there a utility to convert Z80 or 6502 code to 6809 code?
Greetings
Kees
Hi,
I am not aware of them, if any exists ...
But I am sure that in case there is something to help in this conversion, someone will chime in!

Converting Z-80 to 6809 is tricky because Z-80 has far too many registers (not indexes), whilst
the 6502 has only one accumulator IIRC so might be 'easy' to convert to 6809, but this is only
what I am thinking right now. I ported the code from Z-80 to 6809 line by line creating a few
subroutines to deal with mirror registers and special Z-80 functions ...

You could upload both files in this thread so that someone could have a peek at them and tell us his thoughts

cheers
pere
oss003
Posts: 25
Joined: Sat Jun 23, 2018 12:01 pm

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by oss003 »

pser1 wrote:You could upload both files in this thread so that someone could have a peek at them and tell us his thoughts
No problem. The ZX engine is however a bit more expanded because I didn't implement all changes in the Atom engine yet.
The goal is however to have the same commands for both engines.

Greetings
Kees
Attachments
AGD engine source.zip
(63.24 KiB) Downloaded 456 times
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by pser1 »

oss003 wrote: No problem. The ZX engine is however a bit more expanded because I didn't implement all changes in the Atom engine yet.
The goal is however to have the same commands for both engines.
Greetings
Kees
High,
I have had a bit of time and as done when porting "The Hobbit", I have tried to compile the source for ZX-80
using the compiler "Pasmo v0.5.3" and have found a lot of *not defined* constants, these are:
WINDOWTOP, WINDOWLFT, WINDOWHGT, WINDOWWID, NUMOBJ
frmlst, chgfx, bcol, bprop, scdat, nmedat, msgdat, objdta, palett, ptcusr
evnt00 - evnt20 (21 addresses)
stmap, numsc, keys, sprgfx, mapdat, PAMWID, jtab
I have added some equates just to assign them a random value and see if the compiler ends the work.
Well, the output is a binary file only 5951 bytes long, while the file AGD4.7.tap is 43449 bytes long
so I am afraid that we are far from a solid beginning point.
Is there any way to find a source file that would output the 'original' binary when compiled?
And is it possible to get that 'original' binary? Just to make comparisons ...
The .tap file works well on the emulator. I used SpecEmu2.8 and it seems to work.
cheers
pere
oss003
Posts: 25
Joined: Sat Jun 23, 2018 12:01 pm

Re: Anyone interested in converting AGD to the Dragon/CoCo?

Post by oss003 »

There is a solid beginning point but you can't just compile the engine because you need the data from the AGD file to create an assembler file.
The labels you are missing, will be created by the AGD compiler.

AGD works like this:

- Make a 48KB snapshot of an AGD game running on an Spectrum emulator
- Use the CONVERT utility to extract an ASCII AGD file from the snapshot
- Use the COMPILE utility to compile the AGD file to an assembler file and merge it with the engine
- Compile the assembler file to a binary file
- Run the binary file in an emulator

To make it more usefull, I made a ZX Spectrum suite to automate the tasks.
Type CONVERT FOGGY to extract FOGGY.AGD file from the foggy snapshot
Type BUILD FOGGY to compile, assemble and start the emulator with the game.

You can download the suite here: https://drive.google.com/open?id=1en0PD ... GqAGCn-eBK
I also created such suite for the CPC and the Acorn Atom.

Greetings
Kees
Post Reply