CPCWiki forum

General Category => Programming => Topic started by: Jonathan. on 03:22, 18 February 18

Title: Arcade Game Designer
Post by: Jonathan. on 03:22, 18 February 18


It has been a busy week but the editorless version of AGD has now been ported to the CPC.  Unlike the editor version that runs on the CPC itself, this is a full implementation of all the functionality that exists on the editorless Spectrum and Next/Timex versions.  So MENU, WHILE/ENDWHILE, READ/DATA/RESTORE, CONTROL, EXPLODE and much more are supported.


Converting games to or from Amstrad and Spectrum should be a doddle, it's little more than a case of pasting in new graphics.  Beyond that there are palette differences and the Spectrum has KEMPSTON and SINCLAIR as control options where the CPC has JOYSTICK0 and JOYSTICK1.  Redefineable keys are also an option, which was a concern for many with the previous CPC implementation.


If you can develop a game for the CPC with this you should be able to port it to the Spectrum with very little difficulty, and vice versa.  There are dozens, if not hundreds of users, mostly Spectrum ATM so hopefully we'll get some crossover and more games for both platforms.  As always, it's all done in a very simple scripting language inspired by BASIC.  There's an example program, Test.AGD included as well as a skeleton program to start you off with your own creations.  There's a directory with some coding templates too - platformer controls, timer bars, pushable blocks and other stuff are covered there.


Please take a look.  It's all source ATM so you'll need a C compiler to build the compiler.  I'm still using X86 which is why I've not included executables but if you can compile to x64 do feel free to make your executables available to others.


Download here (http://arcadegamedesigner.proboards.com/board/4/agd-releases).


Finally, I'm hoping to turn AGD into a truly multi-platform 8-bit game development tool (an Acorn Atom version is looking promising) so if you know anyone who might be interested in getting involved do let me know!   CPC graphics/screen editors would be really helpful and I'm always looking for more masochi.. er, I mean volunteers to convert this to other platforms.  Please spread the word...

Title: Re: Arcade Game Designer
Post by: jesusdelmas on 16:54, 18 February 18

It has been a busy week but the editorless version of AGD has now been ported to the CPC.  Unlike the editor version that runs on the CPC itself, this is a full implementation of all the functionality that exists on the editorless Spectrum and Next/Timex versions.  So MENU, WHILE/ENDWHILE, READ/DATA/RESTORE, CONTROL, EXPLODE and much more are supported.


Converting games to or from Amstrad and Spectrum should be a doddle, it's little more than a case of pasting in new graphics.  Beyond that there are palette differences and the Spectrum has KEMPSTON and SINCLAIR as control options where the CPC has JOYSTICK0 and JOYSTICK1.  Redefineable keys are also an option, which was a concern for many with the previous CPC implementation.


If you can develop a game for the CPC with this you should be able to port it to the Spectrum with very little difficulty, and vice versa.  There are dozens, if not hundreds of users, mostly Spectrum ATM so hopefully we'll get some crossover and more games for both platforms.  As always, it's all done in a very simple scripting language inspired by BASIC.  There's an example program, Test.AGD included as well as a skeleton program to start you off with your own creations.  There's a directory with some coding templates too - platformer controls, timer bars, pushable blocks and other stuff are covered there.


Please take a look.  It's all source ATM so you'll need a C compiler to build the compiler.  I'm still using X86 which is why I've not included executables but if you can compile to x64 do feel free to make your executables available to others.


Download here (http://arcadegamedesigner.proboards.com/board/4/agd-releases).


Finally, I'm hoping to turn AGD into a truly multi-platform 8-bit game development tool (an Acorn Atom version is looking promising) so if you know anyone who might be interested in getting involved do let me know!   CPC graphics/screen editors would be really helpful and I'm always looking for more masochi.. er, I mean volunteers to convert this to other platforms.  Please spread the word...




thanks a million!! amazing job. this version means that the spectrum tutorial that its on youtube will work for the amstrad cpc as well???


 :)
Title: Re: Arcade Game Designer
Post by: robcfg on 17:19, 18 February 18
Hi @Jonathan (http://www.cpcwiki.eu/forum/index.php?action=profile;u=335) ,


Could you upload the files here too? I'd like to take a look but I honestly don't want to register in another forum, and I cannot download the files there, as I'm not registered.


Cheers,
Rob
Title: Re: Arcade Game Designer
Post by: Jonathan. on 20:40, 18 February 18
Didn't realise I could do that until I read your post so here you go, it's attached.  I've added some executables too so no need to use a C compiler to build the AGD compilers any more.  C source code is still included though.

Title: Re: Arcade Game Designer
Post by: SRS on 21:09, 18 February 18
Nice !

Somehow I do not manage to get test.agd compiled to one ASM that WinAPE "compiles" and after that it is runable on Emulator ...

ASM generated in Attachments:


Title: Re: Arcade Game Designer
Post by: johnlobo on 16:04, 19 February 18
Didn't realise I could do that until I read your post so here you go, it's attached.  I've added some executables too so no need to use a C compiler to build the AGD compilers any more.  C source code is still included though.


I have tried to build the example project (skeleton.AGD), but when I try to assemble the generated asm file in Winape, I get 46 undefined symbol errors... :-(  ...what am I missing??
Title: Re: Arcade Game Designer
Post by: SRS on 19:26, 19 February 18
It doesn't seem to include "WINDOWTOP" etc. to the ASM-Source ?

If you use the ZX Compiler or Next one it does put them after game engine (lines 3500 and onward)

Code: [Select]
; Game-specific data and events code generated by the compiler ------------------


WINDOWTOP equ 1
WINDOWLFT equ 9
WINDOWHGT equ 22
WINDOWWID equ 22

which "confuses" Assembler ?
Title: Re: Arcade Game Designer
Post by: jesusdelmas on 02:20, 20 February 18
i dont know how to open this AGD0 file, i dont know if i need the AGD 4.7 for spectrum and later complile the game for amstrad, or just use the cpc 1.4 version..


im new in this so if there is a tutorial it will be very helpful for me :)


thanks anyway!



Title: Re: Arcade Game Designer
Post by: billamu on 04:06, 20 February 18
Hi jesusdelmas. AGD 1.4 is run on an Amstrad computer or emulator, whereas this is a Windows-based workflow - the .AGD file is a text file that can be exported to an assembly language file that in turn can be compiled to machine code, and run on the Amstrad.

...if we can work out how to do so!  :)

I copy-pasted both of SRS' code into WinApe and compiled it... yes it compiles, and it had a couple of doubles, but after I removed them it doesn't appear to run.

It would be great if someone works out how to make this work!
Title: Re: Arcade Game Designer
Post by: jesusdelmas on 14:48, 20 February 18

It has been a busy week but the editorless version of AGD has now been ported to the CPC.  Unlike the editor version that runs on the CPC itself, this is a full implementation of all the functionality that exists on the editorless Spectrum and Next/Timex versions.  So MENU, WHILE/ENDWHILE, READ/DATA/RESTORE, CONTROL, EXPLODE and much more are supported.


Converting games to or from Amstrad and Spectrum should be a doddle, it's little more than a case of pasting in new graphics.  Beyond that there are palette differences and the Spectrum has KEMPSTON and SINCLAIR as control options where the CPC has JOYSTICK0 and JOYSTICK1.  Redefineable keys are also an option, which was a concern for many with the previous CPC implementation.


If you can develop a game for the CPC with this you should be able to port it to the Spectrum with very little difficulty, and vice versa.  There are dozens, if not hundreds of users, mostly Spectrum ATM so hopefully we'll get some crossover and more games for both platforms.  As always, it's all done in a very simple scripting language inspired by BASIC.  There's an example program, Test.AGD included as well as a skeleton program to start you off with your own creations.  There's a directory with some coding templates too - platformer controls, timer bars, pushable blocks and other stuff are covered there.


Please take a look.  It's all source ATM so you'll need a C compiler to build the compiler.  I'm still using X86 which is why I've not included executables but if you can compile to x64 do feel free to make your executables available to others.


Download here (http://arcadegamedesigner.proboards.com/board/4/agd-releases).


Finally, I'm hoping to turn AGD into a truly multi-platform 8-bit game development tool (an Acorn Atom version is looking promising) so if you know anyone who might be interested in getting involved do let me know!   CPC graphics/screen editors would be really helpful and I'm always looking for more masochi.. er, I mean volunteers to convert this to other platforms.  Please spread the word...




Hi!!! i sorry to bother you, but can you tellnus how to run this AGD in an amstrad emulator? (win ape)


it is being really hard make this work...


thansk a million anyway  :)
Title: Re: Arcade Game Designer
Post by: arnoldemu on 16:03, 20 February 18
@Jonathan (http://www.cpcwiki.eu/forum/index.php?action=profile;u=335):

There are some small bugs in your code.

around line 956 this is new fixed code. you can also use fgetc and fputc and feof.

Code: [Select]

puts( "test4" );
char chData[1];
    lSize = fread(chData, 1, 1, pEngine );            /* read first character of engine source. */
puts( "test5" );

    while ( lSize > 0 )
    {
        fwrite(chData, 1, 1, pObject );                /* write code to output file. */
        lSize = fread(chData, 1, 1, pEngine );        /* read next byte of source. */
    }

it was reading and writing into a pointer before. This was causing a crash for me.

line 888:

should be:
Code: [Select]
    sprintf( szObjectFilename, "%s.asm", argv[ 1 ]);

too many parameters to sprintf.



Title: Re: Arcade Game Designer
Post by: billamu on 22:22, 20 February 18
Okay, I got it to work. Here's what I did:

1. Make a folder called "Test Project" and put the following files into it:
2. Open Command Line (cmd)

3. In Command line, type the following:
Code: [Select]
cd [location_of_TEST_PROJECT_folder]
CompilerCPC test
Note: it says "test" not "test.AGD". If you type "test.AGD" CompilerCPC will look for "test.AGD.AGD" and upon not finding it, export a blank file+enginecpc.asm.

4. Open the resulting "test.asm" file. If you have a file called "test.AGD.asm" it's because you typed "CompilerCPC test.AGD" which won't work.

5. Select all the text in the .asm file and copy it (Control+C)

6. Open WinApe

7. On the Amstrad, type:
Code: [Select]
MEMORY 1999
8. In WinApe select Assembler>Show Assembler (or press F3)

9. Paste the code into the corresponding window and compile it (by pressing F9). It should compile with no errors.

10. Back in the Amstrad type:
Code: [Select]
CALL 2000
The resulting code should run.


Title: Re: Arcade Game Designer
Post by: SRS on 22:53, 20 February 18
After fixing the Errors @arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) pointed to, and rebuilding a x64 version with devcpp, I got it to work following @billamu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1271) post (i did it that way, too, but with unfixed compiler it did not work ...)

I got it work !

Now, lets flood the CPC with AGD games ! Jihaa

Attached my "fixed" x64 version of AGD_CPC Compiler.
Now, ASSembler Pros, maybe you can enhance/speed up the "enginecpc.asm" for all of us ?
Title: Re: Arcade Game Designer
Post by: arnoldemu on 10:54, 21 February 18
After fixing the Errors @arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) pointed to, and rebuilding a x64 version with devcpp, I got it to work following @billamu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1271) post (i did it that way, too, but with unfixed compiler it did not work ...)

I got it work !

Now, lets flood the CPC with AGD games ! Jihaa

Attached my "fixed" x64 version of AGD_CPC Compiler.
Now, ASSembler Pros, maybe you can enhance/speed up the "enginecpc.asm" for all of us ?
I did the same as @SOS (http://www.cpcwiki.eu/forum/index.php?action=profile;u=941) and @billamu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1271) but the AGD compiler always crashed. I loaded it up in visual studio ran the static code analysis on it, it reported those problems which I fixed (there were others but very minor) and it no longer crashed and I got output :)

Title: Re: Arcade Game Designer
Post by: johnlobo on 12:28, 21 February 18
It works!!


 :D


Thank you very much everybody.


Regards.
Title: Re: Arcade Game Designer
Post by: Sykobee (Briggsy) on 19:45, 21 February 18
Nice to see this! Shame I have a Mac though...


Would be nice to see the instructions on the Wiki.
Title: Re: Arcade Game Designer
Post by: SRS on 21:02, 21 February 18
There is no free C Compiler for Console on MAC ?

As @Jonathan (http://www.cpcwiki.eu/forum/index.php?action=profile;u=335) was very nice giving the Source to compile the Compiler above :)
Title: Re: Arcade Game Designer
Post by: robcfg on 21:50, 21 February 18
Xcode is free and provides you gcc and g++ for command line.


I managed to compile the compiler (heh!) but crashes when processing a project file.


I’ll try to do some debugging.
Title: Re: Arcade Game Designer
Post by: SRS on 22:08, 21 February 18
Thats cool !

Try my arnoldemu inspired source ?

Title: Re: Arcade Game Designer
Post by: robcfg on 23:08, 21 February 18
Yep!


Just tried it and it crashes too:


Code: [Select]
AGD Compiler for Amstrad CPC464 Version 0.4
(C) Jonathan Cauldwell February 2018
test1
test2
test3
test4
test5
Sourcename: test.agd
[1]    91575 abort      ../CompilerCPC_SRS test


I'll try to do some debugging tomorrow and get back to you guys.
Title: Re: Arcade Game Designer
Post by: robcfg on 15:42, 22 February 18
I managed to get it working.


Most errors are due to buffer sizes. For example, on the void CreateSprites( void ) function, there's a variable named cByte, which is an array of ten chars.


A couple of lines below cBytes declaration, there's the following line "cByte[ 10 ] = ( cByte[ 4 ] << 1 ) & 170;" which actually accesses the 11th element of the array, when there's only ten, causing a crash.


I think that rewriting the code using C++ and the standard template library would make the code easier to read and less error prone.


You'll find attached my version of the source C file. Most probably there are still errors so I'd go for a rewrite.
Title: Re: Arcade Game Designer
Post by: arnoldemu on 15:51, 22 February 18
Nice. I used it briefly.

I got it to build an asm output for skeleton.agd and then I was happy. :)

Title: Re: Arcade Game Designer
Post by: Jonathan. on 23:31, 22 February 18
Thanks guys.

A couple of errors were hangovers from previous implementations that were overlooked and it seems a few debug lines were still in there.  I've put in the fixes and echoed them to the Next/Timex and Spectrum versions.  The buffer size of 32768 will looking at when I get a chance.

The engine could certainly be improved, I don't pretend to be a CPC expert.  But it works and has the functionality of the other versions, if perhaps not as efficient as it could be.

I still need to implement DEFINESOUND before I think about looking at a version for MSX machines.  A tool to extract data from games written with AGD 4.7 and generate .agd files is also on the to-do list.
Title: Re: Arcade Game Designer
Post by: EgoTrip on 01:24, 23 February 18
It looks good, I certainly wish this existed back when I started using AGD. But now I have moved on to more advanced tools, it seems like it's a backwards step going back to AGD for me on the CPC.

However I definitely do recommend this to people to use AGD as a sketchpad for ideas or for beginners who want to get a functional game running with minimal effort.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 01:31, 26 February 18
Snce my last post:


Kees Van Oss is making serious progress with an Acorn Atom conversion.  this is amazing work which could make a series of 6502 conversions possible!


https://www.youtube.com/watch?v=pRwtFTKOn0E


Meanwhile, I'm working on a tool to extract data from snapshots of dozens if not hundreds of Spectrum AGD games and generate new source files that could be converted to the CPC and other formats.

Title: Re: Arcade Game Designer
Post by: Jonathan. on 22:51, 11 March 18





Update:


I've now released a Windows editor which allows you to edit blocks, sprites, objects, screens etc and generate much of the AGD file automatically, leaving you just a few bits and pieces to code yourself.  All very basic at the moment but it's a start.


What it will do is allow the user to import a snapshot of recent 48K Spectrum AGD games and it will then generate placeholder graphics for CPC as a base to start with.  You can flip between formats easily, one minute you're editing graphics for the Timex Sinclair, the next the CPC.


My priority now is to start testing this tool on bigger games.  All very well playing Dodgy Geezer on a CPC, Spectrum or Atom but people want to create bigger games than that.  In the meantime, let me know how you get on so I can fix any problems that arise.



http://arcadegamedesigner.proboards.com/thread/555/agd-version-first-windows-editors (http://arcadegamedesigner.proboards.com/thread/555/agd-version-first-windows-editors)

Title: Re: Arcade Game Designer
Post by: Jonathan. on 19:30, 22 April 18
Version 0.6 is now available to download.

Lots of bug fixes this time, this has been tested with several games and as part of that I converted a couple of existing Spectrum games to the CPC.  All good fun although I'm sure there are people here who'll make better use of the Amstrad's graphics than I ever could so I'll let others look into converting Spectrum AGD games.  There are dozens of games that could be given a CPC conversion though.

Multi-Platform AGD is now an all-in-one program.  Blocks, sprites, objects, screen layouts, map, font, palette, sprite/object positions... there are editors for everything except code so you'll have to edit the scripts separately.  It will even export the game as an assembly language listing; all tested with 2500AD, SjAsmPlus and the assembler built in to WinApe.


http://www.spanglefish.com/egghead/index.asp?pageid=397755 (http://www.spanglefish.com/egghead/index.asp?pageid=397755)

Have fun, there'll be plenty of bugs so do let me know when you find any.  And don't be too harsh on my Windows API programming, it does the job for now... ;)

Title: Re: Arcade Game Designer
Post by: EgoTrip on 20:46, 23 April 18
I played around with it a bit using Wine. I might make a small game or two, because I will be able to easily port it to the other platforms. But my main games will still be done on cpctelera. I've not made anything significant yet, but I have some suggestions:

Could you add a grid on the sprite/object/block/screen editors, with a button to toggle it on/off?

Also, maybe an actual-sized on-the-fly preview of what you are editing in each editor.

When you drag across the tiles, it will draw whatever you have selected, it saves having to repeatedly click each one individually. Maybe an undo/redo button too.

There was something else which I can't recall right now.
Title: Re: Arcade Game Designer
Post by: oss003 on 11:10, 04 June 18
Hi guys, I uploaded my CPC suite to simplify the testing of AGD games.


- Unpack the zip file
- Go to the WinAGD directory
- Start WinAGD and develop your game
- Save the game in the CPC suit directory, eg TEST.AGD
- Go to the CPC suite directory
- Type BUILD TEST


Now the game is compiled, assembled and started in the emulator for testing.
Jonathans demogame TEST is included so you can test it with BUILD TEST.



You can download the CPC suite here:


  https://drive.google.com/open?id=1n1sQUNR5fKUcuKdm89OXmBjwjc6ZnXAc (https://drive.google.com/open?id=1n1sQUNR5fKUcuKdm89OXmBjwjc6ZnXAc)


Greetings
Kees

Title: Re: Arcade Game Designer
Post by: Jonathan. on 23:10, 29 June 18
Here's the latest update - version 0.7 - with bug fixes, improved editors, more tools, extra functionality, new commands and updated documentation among other things.  Oss003's build suite can now be integrated by editing the MPAGD.INI file, automating the build process.


Still much to do of course but have a play and let me know how you get on.


Title: Re: Arcade Game Designer
Post by: Jonathan. on 18:35, 17 March 19

Version 0.7.3 (https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer)

Now available in 32-bit and 64-bit Windows versions!  Some additions since last time...
There's a new option to import AGD/AGDX games from TAP files, new options in the script generator, imported games will now convert the CONTROLMENU command into equivalent code with a place where you can add a new redefine keys routine, there's a new tool for automatically checking mistakes, 2 default fonts, numerous bug fixes and support for the Acorn Electron, Dragon/Coco and Enterprise machines.

It's quite cool being able to just click the mouse and have MPAGD automatically generate code to make a drone sprite orbit the player. With a quick change to the script you could make it orbit an enemy sprite instead so how about having a boss sprite with several orbiting sprites firing at the player? Simple! Pushable block sprites are also now an option in the script generator. MPAGD will generate code reasonably intelligently and where code is required in multiple events it will generate that too, provided you are generating code for that event at the same time. Even your control menu and redefine keys routines are written for you, though you can always change them if you so desire.

There are bug fixes to the Amstrad, Spectrum, Timex and Next compilers and these now have an option to produce output specifically for SjAsmPlus in order to create the binary. The CPC compiler also has an additional option to produce code for WinAPE with a -nolist line at the top for speedier builds.  The documentation has been updated with a few screenshots and now runs to 52 pages.


Going forward I have a few ideas for sprite movement editors. Sine waves, circular motion, maybe waypoints. All possible thanks to the fact that MPAGD's sprites have local READ, DATA and RESTORE commands. That said, don't worry too much about RESTORE as READ is cyclical on MPAGD, it loops automatically.

Thanks go to the awesome Kees van Oss for putting together the 32-bit stuff, complete with build suites.
Title: Re: Arcade Game Designer
Post by: GUNHED on 20:26, 17 March 19
Nice. Is there an example available?

Title: Re: Arcade Game Designer
Post by: Jonathan. on 16:49, 23 March 19

There is a simple example project included, a simple ladders-and-levels game where the player has to collect diamonds.  For more examples it's very easy to import Spectrum games that were written with AGD versions 4.0 to 4.7 (over 100 titles) and see how they were constructed or to play around with them.

Title: Re: Arcade Game Designer
Post by: GUNHED on 16:29, 24 March 19
Ah more Spectrum conversions... if there is a final program somewhere or a video somewhere please let us know.
Title: Re: Arcade Game Designer
Post by: VincentGR on 17:07, 24 March 19
There is a simple example project included, a simple ladders-and-levels game where the player has to collect diamonds.  For more examples it's very easy to import Spectrum games that were written with AGD versions 4.0 to 4.7 (over 100 titles) and see how they were constructed or to play around with them.


I would like to see a tutorial about the port.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 14:53, 28 March 19
Looks like the example project was messed up.  I've fixed it and attached a new example project.


Ah more Spectrum conversions... if there is a final program somewhere or a video somewhere please let us know.

Given the large number of Spectrum games that were written with AGD I suppose conversions are one starting point but it's not just about converting Spectrum games, this is a fully functioning game designer for the CPC and has already been used to create a couple of games for the machine.  Here's one (https://www.youtube.com/watch?v=U-X6UxhBbno).


I would like to see a tutorial about the port.

I've recorded some rambling tutorial videos.  Although I'm creating a Spectrum game in these it could just as easily have been a CPC game, it's just a question of selecting CPC from the machine menu instead of Spectrum and then building the assembler file in WinAPE instead of importing a binary in FUSE.

Part 1 (https://www.youtube.com/watch?v=9evsT7vL0xM)
Part 2 (https://www.youtube.com/watch?v=ZddySAehUhE)
Part 3 (https://www.youtube.com/watch?v=ZddySAehUhE)
Title: Re: Arcade Game Designer
Post by: MiguelSky on 22:24, 28 March 19
it's just a question of selecting CPC from the machine menu instead of Spectrum and then building the assembler file in WinAPE instead of importing a binary in FUSE.
I'm not able even to assemble the EngineCPC asm in WinAPE assembler as a lot of undefined symbol messages are thrown. I have to paste this file in the Assembler editor including at the end the .agd file generated when Exporting source code, right?
Title: Re: Arcade Game Designer
Post by: Jonathan. on 22:16, 29 March 19
I'm not able even to assemble the EngineCPC asm in WinAPE assembler as a lot of undefined symbol messages are thrown. I have to paste this file in the Assembler editor including at the end the .agd file generated when Exporting source code, right?



Not enginecpc.asm.


You need to export the source code and choose a name for your file, let's say you call it mygame.  Then answer "Yes" when prompted to create the assembler listing and it will create a file, mygame.asm.  That is the file that you need to load in the WinAPE assembler.

Title: Re: Arcade Game Designer
Post by: MiguelSky on 22:22, 29 March 19
Thank for your answer. In my PC only the agd files are created. I just tried also with Spectrum Standard, Dragon and some more with the same result...


EDITO: I've downloaded the entire suite again, just in case...

Title: Re: Arcade Game Designer
Post by: MiguelSky on 01:42, 30 March 19
Sorry the double post. I've doing more testing and I've realized that Geezer compiling stops at the line "wintop defb WINDOWTOP      ; top of window."


"Undefined symbol", it says. It's the same line where it stopped during my first tries, when I reported my problems using the program.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 00:15, 01 April 19
Sorry the double post. I've doing more testing and I've realized that Geezer compiling stops at the line "wintop defb WINDOWTOP      ; top of window."

"Undefined symbol", it says. It's the same line where it stopped during my first tries, when I reported my problems using the program.



 :doh:



You're right, I've somehow managed to break it.  A couple of lines need removing from the engine and pasting at the end of the code so I'll need to modify the engine and the compiler to fix that.  I've also spotted a problem with the collectable blocks on the CPC so that will need fixing too.  I'll get a fix together ASAP for the first problem then start looking into the collectable blocks.


If you take these two lines:
Code: [Select]
WINH   equ WINDOWHGT * 8
WINW   equ WINDOWWID * 5



...and move them to the end of the assembly code it should build.


Thank you very much, I don't get many bug reports for MPAGD or AGD.  A lot of Spectrum bugs were left unfixed for years because I hadn't found them and nobody told me they were there.  Your feedback is really appreciated!


In other news, the project was mentioned on Hackaday (https://hackaday.com/2019/03/29/creating-8-bit-games-with-the-multi-platform-arcade-game-designer/) at the weekend and as a result MPAGD has gained lots of new users, traffic at the MPAGD download page went crazy.  Fingers crossed for more games.   :)

Title: Re: Arcade Game Designer
Post by: MiguelSky on 03:55, 04 April 19
No, sorry, it's not working. I have also tried by importing from another speccy game (Monty's Honey Run) unsuccessfully. I'm afraid I have to wait for your fix.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 01:13, 07 April 19



The attached files should get you up and running, I got Diamond Geezer to build in WinAPE and SjAsmPlus with these.

Title: Re: Arcade Game Designer
Post by: Jonathan. on 23:05, 14 April 19
Just a change to the engine this time.  Have fixed the collectable blocks code and got CLS working correctly.
Title: Re: Arcade Game Designer
Post by: MiguelSky on 04:01, 21 April 19
During Easter holidays, I tried 64bit version and it worked better in my laptop than 32bit one in my PC.


Now I have updated to the new 0.7.4 https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released (https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released) and both versions 32 and 64 seem to work even better although I continue without having a converted game playing properly. I get some results by changing some params but some games refuse to assemble and complain about undefined symbols, mainly evntxx.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 13:57, 22 April 19

It looks like the random number routine wasn't working.  There's a fix to the CPC engine attached, give it a try and see if it improves things.

If you let me know which games are proving difficult to convert I'll take a look at them and fix any bugs I find.


Incidentally, I made a five minute YouTube video showing how to convert a Spectrum AGD game to the CPC:
https://youtu.be/2bd5idEW790 (https://youtu.be/2bd5idEW790)
Title: Re: Arcade Game Designer
Post by: MiguelSky on 03:05, 23 April 19
By following your mini-tutorial I managed to fix some wrong behaviour and now I have a playable version of Roboprobe when I work in MPAGD 64bit version but I'm not able to do the same with 32bit version of MPAGD. It keeps throwing messages about undefined symbols. I join a capture and the tap of the game.


EDITO: I tried with apulija and it hangs MPAGD when I try to load the 48kb sna file.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 23:04, 23 April 19

Looks like you're running an old version of the CPC compiler, 0.7.2.  The latest version should display 0.7.3.  Make sure you're using the most recent CompilerCPC.exe and the WINH error will disappear.

Title: Re: Arcade Game Designer
Post by: VincentGR on 23:11, 23 April 19
I did the same conversion of that game in your video but you can't go back on the left to revisit a screen.
Maybe games need more changes :-/
Awesome suite though.
Title: Re: Arcade Game Designer
Post by: MiguelSky on 01:11, 24 April 19
I did the same conversion of that game in your video but you can't go back on the left to revisit a screen.
I managed it to work in other game by replacing the < symbol with =.
Title: Re: Arcade Game Designer
Post by: VincentGR on 01:17, 24 April 19
I managed it to work in other game by replacing the < symbol with =.


You mean instead of:

IF X < LEFTEDGE
    LET X = RIGHTEDGE


To:

IF X = LEFTEDGE
    LET X = RIGHTEDGE
Title: Re: Arcade Game Designer
Post by: MiguelSky on 01:51, 24 April 19

You mean instead of:

IF X < LEFTEDGE
    LET X = RIGHTEDGE


To:

IF X = LEFTEDGE
    LET X = RIGHTEDGE
Right!
Title: Re: Arcade Game Designer
Post by: VincentGR on 02:00, 24 April 19
This is what I did  :-X
Title: Re: Arcade Game Designer
Post by: MiguelSky on 04:23, 24 April 19
Looks like you're running an old version of the CPC compiler, 0.7.2.  The latest version should display 0.7.3.  Make sure you're using the most recent CompilerCPC.exe and the WINH error will disappear.
They are the ones included on last version I downloaded from https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released (https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released). I also downloaded 64bit version to replace the compiler file but the same 0.7.2 version is shown in the console.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 23:40, 27 April 19
They are the ones included on last version I downloaded from https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released (https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer/devlog/77278/version-074-released). I also downloaded 64bit version to replace the compiler file but the same 0.7.2 version is shown in the console.


This is weird.  I just downloaded the latest 64-bit version myself to make sure I'm not going mad and CompilerCPC.exe does show 0.7.3.  Are you sure you didn't download the previous version by mistake?  Perhaps you have a rogue old copy of the previous version of CompilerCPC.exe still on your drive and the new one didn't copy over it or maybe there's an old version running from a different directory?

I can post the most recent 32 or 64 bit CompilerCPC.exe here if that helps.
Title: Re: Arcade Game Designer
Post by: Jonathan. on 00:23, 28 April 19

You mean instead of:

IF X < LEFTEDGE
    LET X = RIGHTEDGE

To:

IF X = LEFTEDGE
    LET X = RIGHTEDGE




Another way would be to ignore LEFTEDGE and RIGHTEDGE completely and instead take the X coordinates used in the Spectrum game, divide those by 8 then multiply them by 5.  If you're writing a game from scratch it's definitely better to reference LEFTEDGE and RIGHTEDGE because then your game should work on all platforms without changes.  Going forward, the plan is to add more machines with different resolutions and if the mode 0 CPC version proves popular I'll take a look at adding a mode 1 option.

Title: Re: Arcade Game Designer
Post by: VincentGR on 00:31, 28 April 19
Mode 1 will be the best option for most of the ZX ports.
Title: Re: Arcade Game Designer
Post by: VincentGR on 01:01, 28 April 19
Ok that worked, thanks so much!!!
I ported another one that now has a problem when I reach the upper screens (The Vectornauts 2)
Will I do the same with with Y?



Title: Re: Arcade Game Designer
Post by: MiguelSky on 02:28, 28 April 19
This is weird.  I just downloaded the latest 64-bit version myself to make sure I'm not going mad and CompilerCPC.exe does show 0.7.3.  Are you sure you didn't download the previous version by mistake?
I just downloaded (once again) the 32 bit to a different drive in my PC and when it tries to export it says it's 0.7.2. I can't try 64bit now because I don't have the laptop with me this week (please, don't ask why  :picard: ).


May you post the 32bit CompilerCPC.exe here, just in case?
Title: Re: Arcade Game Designer
Post by: Jonathan. on 22:45, 03 May 19

Here's the 32-bit CompilerCPC.exe

Title: Re: Arcade Game Designer
Post by: MiguelSky on 23:18, 03 May 19
Here's the 32-bit CompilerCPC.exe
I'm afraid this file doesn't solve the problem.I just downloaded (once again more) the 32bit to a different drive in my PC. Then, before doing anything else, I replaced the Compiler CPC with the one you have sent. When it tries to export it keeps saying it's 0.7.2 :o
Title: Re: Arcade Game Designer
Post by: VincentGR on 23:44, 03 May 19
Do you run it from a shortcut?
Maybe it is assigned to an old directory.


Or admin privileges won't let you copy it?
Title: Re: Arcade Game Designer
Post by: MiguelSky on 00:23, 04 May 19
No, I open the file winAGD.exe directly. And the file CompilerCPC is certainly replaced: in previous tests I had renamed it but this time I tried by deleting it.
Title: Re: Arcade Game Designer
Post by: SRS on 00:05, 05 May 19
I just checked latest 64bit version (580k)  and 32bit version (21 MB) - in both the source code of CompilerCPC claims to be a

Code: [Select]
    puts( "AGD Compiler for Amstrad CPC464 version 0.7.3" );
    puts( "(C) Jonathan Cauldwell March 2019" );
Title: Re: Arcade Game Designer
Post by: MiguelSky on 16:57, 05 May 19
I just checked latest 64bit version (580k)  and 32bit version (21 MB) - in both the source code of CompilerCPC claims to be a

Code: [Select]
    puts( "AGD Compiler for Amstrad CPC464 version 0.7.3" );
    puts( "(C) Jonathan Cauldwell March 2019" );
I do see that here.

I've finally found what was happening!!! In the 32bit version, build.bat files use the compiler named AGD.exe into AGD folder nested into CPCSuite folder instead the CompilerCPC.exe into  the upper MPAGD32 folder!!! I overwrited that file with the last one that Jonathan sent (renamed to AGD.exe) and 0.7.3 is finally shown. It's the same if I replace it with the CompilerCPC in root MPAGD32 folder (renamed to AGD.exe)


Mystery solved!
Title: Re: Arcade Game Designer
Post by: Jonathan. on 15:11, 06 October 19

There is a new release with a few improvements, mostly to the editors.  There are one or two bug fixes and there's an option to disable the AY so that you can add your own music.


The BBC Model B is now supported thanks to Kieran and Kees so you can create games for that machine too.


The MSX has been added as an option.  Once Jose finishes the compiler and engine (he's very close, I've been testing them on a few Spectrum conversions) it should just be a case of slotting Kees' build suite in as a sub-directory and you'll be able to create games for that machine as well.


https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer (https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer)
Title: Re: Arcade Game Designer
Post by: SRS on 23:27, 07 October 19
Nice news.
I just helped you a bit - now 230 million users of AVG AntiVirus can run it without fearings it's a trojan  :picard:
Title: Re: Arcade Game Designer
Post by: MiguelSky on 14:55, 06 April 20
Again Easter Holidays, again working with MPAGD  :P 

There is a new release of the program at https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer. The 0.7.7, released on April the 2nd.

Working with this new version, I've realized that the presence of space o caps in the name of the folders/path where projects are saved caused most of my problems- Avoid them. Now I can convert Apulija easily without errors ;)