Notes

AGD 4.8 is the source code I had lying around on my PC.  It's similar to 4.7 but with a few bugs fixed and some engine changes.  It was originally going to become part of a future release 5.0, probably for Cronosoft.  It wasn't long however, before I realised that the vastly superior Multi-Platform Arcade Game Designer (MPAGD) was the way forward so I ended up abandoning work on AGD 5 some time ago; a native Spectrum version could never compete with a PC tool.  Rather than leave the code unreleased it is presented here as version 4.8, untested and with no guarantees.  Of course, AGD users have become accustomed to that over the years.  Version 4.7 is also included, should 4.8 prove to be broken.

Due to the engine changes, games written with version 4.7 cannot be loaded into 4.8.  Sorry about that.  If you have a part-finished game written with 4.6 or 4.7 and wish to upgrade, consider importing it into MPAGD instead.

I left the Spectrum scene in December 2018 and won't be writing any more Spectrum games or developing AGD 4.8 any further.  If AGD 4.8 becomes popular I may still fix the odd reported bug.  I am still supporting and developing MPAGD and others are developing compilers and engines for other 8-bit machines so that project is very much alive.

AGDX is still under active development and I'll make sure Allan has a copy of the source for 4.8, should he wish to apply the AGDX changes to 4.8.  I do still have some source somewhere for a version with 16x16 blocks but that seems to have gone missing along with the code for the Amstrad CPC version 1.4 and the source for Kuiper Pursuit.

Thanks to Björn-Lars Feddersen for translating the instructions into German.

Jonathan Cauldwell

website:       http://www.spanglefish.com/egghead/
AGD forums:    http://arcadegamedesigner.proboards.com/
itch.io:       https://jonathan-cauldwell.itch.io/

I left Twitter in December 2018, the ZXSpectrumDev account is someone else pretending to be me



Release history

0.3  04.04.2008 - first public release
0.4  05.04.2008 - corrected memory management bug which caused many knock-on problems
                - fixed a problem with the sound compilation
                - added code to display message number in the message editor
0.5  06.04.2008 - fixed bug moving to next level
                - fixed bug whereby only 6 sprites appeared on screen, instead of maximum 12
0.6  12.04.2008 - added functionality for ADD and SUBTRACT
                - added events for restart and initialise sprite
                - games are now saved properly, so should now be entirely stand-alone
                - fixed bug in scoring routine
0.7  13.04.2008 - fixed anti-flicker sprite sort
                - fixed delete message bug
                - removed debug code which prevented saved games being reloaded
0.8  18.04.2008 - added map layout code
                - added DISPLAY command to display numeric values
                - code editor now makes use of as much RAM as possible
                - now returns address of score string to BASIC
0.9  27.04.2008 - window resize now shows character squares in a chessboard pattern
                - fixed lock up caused by delete block routine
1.0  29.04.2008 - should be fairly stable now, so we'll call this version 1.0  ;)
                - added new deadly block, and new DEADLY collision test
                - replaced missing code for sprite copy and paste
                - fixed a bug in the sprite initialisation event
1.1  07.05.2008 - fixed bug in SPAWN routine
                - added WAITKEY command
1.3  28.02.2009 - rewrote sprite routines to eliminate flicker
                - added JUMP and FALL commands
                - added jump table editor
1.4  01.03.2009 - added global variables E, F, G and H
                - SCORE, BORDER, COLOUR, DELAY, MESSAGE now accept variables as arguments
1.5  02.05.2009 - added object editor to main menu
                - added GOT, GET, PUT, DETECTOBJ
                - added global variables I, J, K and L, plus object handling variable OBJ
                - fixed screen corruption in text editor
2.0  29.08.2009 - screen data is now stored in a compressed format
                - changing screens with LET SCREEN = now changes the map position
                - added TOGGLE command
                - increased speed of sprite routine
                - fixed bugs which occurred when deleting screens or resizing window
2.1  18.09.2009 - added ENDGAME command
                - added PRINT facility to text editor (symbol shift-I)
                - fixed bug which removed first sprite position when resizing window
                - stand-alone games no longer crash on returning to Sinclair BASIC
                - fixed compiler bug whereby IF would occasionally test incorrect parameters
                - fixed bug with FALL command which prevented char-aligned sprites falling
2.2  03.10.2009 - replaced TOGGLE command with OTHER, SPAWNED and ORIGINAL
                - added ANIMBACK command
                - editor now checks sufficient room in RAM before editing event scripts
                - removed unshifted copy of sprites, making them 20% more efficient
                - added option to configure editor colours
2.3  21.03.2010 - bright key in block editor now cycles all 4 bright and flash bit combinations
                - fixed bug amending screens after blocks are deleted in block editor
                - fixed problem with sound in DELAY
2.4  02.04.2010 - added fast draw mode to screen editor
                - added collision detection distance option to main menu
                - added setup menu with ULA+ palette editor
                - block editor now displays blocks properly in ULA+ mode
                - reset sprite frame and avoid potential corruption on sprite creation/deletion
                - minor internal compiler changes
2.5  04.06.2010 - fixed bug which didn't set up terminator when adding a sound
2.6  17.07.2010 - save current screen changes when creating new screen in the editor
2.7  26.11.2011 - added Kempston joystick support
                - internal editor changes to free up more RAM
3.0  08.04.2012 - editor routines paged in and out of RAM to create more room for the game
                - added event templates
                - ULA+ palette editor incorporated into main menu
                - vertical and horizontal mirroring added to sprite and object editors
                - scratchpad screen load/grab functionality added to sprite editor
                - added >, <=, <> operators
                - added M, N, O and P variables
                - added INV and MENU commands and OPT variable
                - added off-screen protection to print routines to stop overwriting system variables
                - added BEEP command
                - previously, IF A=3 worked while 3=A didn't.  This has been fixed
                - option to create BASIC loader added
                - font editor added
3.1  20.05.2012 - fixed bug in way script compiler handles numbers
3.2  08.06.2012 - added REPEAT, ENDREPEAT, EXIT commands
                - screen editor now includes mark and paste facilities
                - created enemy template for ladders-and-levels games
3.3  21.12.2012 - added MULTIPLY command
                - fixed bug in screen editor mark and paste
                - fixed last two event templates
3.4  17.02.2013 - fixed bug in GETRANDOM
                - fixed bug in text editor whereby text could appear in next message
                - sprite position editor no longer calls sprite initialisation event
                - text editor speeded up
3.5  28.03.2013 - fixed code editor bug by increasing gap between game and editor workspace
4.0  04.05.2013 - added facility to modify engine for particles, effects or puzzles
                - added option to convert sprite engine from 16x16 to 16x24
                - incorporated a particle engine
                - added Q, R and CLOCK variables
                - added DIVIDE, SPRITEINK, SILENCE, REDRAW, CONTROLMENU commands
                - FILL command replaced with PUTBLOCK
                - added LASER, EXPLODE, STAR and TRAIL particle commands
                - added BIGMESSAGE, FADE, TICKER, BIGSCORE effect commands
                - INV and DIG moved to adventure engine
                - water block added to adventure engine
                - sprite position editor highlights selected sprite
                - sprite positions now use less memory
                - events editor moves cursor to first erroneous line
                - maps can now be 11 rooms wide
                - added option to incorporate loading screen in BASIC loader
                - added option to remove sprite ordering and AY sound
                - added several new events
4.1  09.05.2013 - fixed debounce on key refinition
                - sprite clear, grab, copy and paste should now work for 16x24 sprites
4.2  07.07.2013 - fixed 16x24 sprite horizontal flip
                - experimental colour scheme change
4.3  31.08.2013 - fixed compiler COLLISION bug
                - no longer displays trailing digits for screens 0-9 in screen editor
                - now tabulates properly in sound editor
                - added keys 3 and 4 in sound editor to speed up tone setting
4.4  05.01.2014 - check for objects at next sprite position, not previous one
                - store new font correctly when loading an AGD file from tape
                - vertically flip entire 16x24 sprite, not just 16x16
                - removing sprite frame in 16x24 mode no longer corrupts sprites
                - don't overwrite end marker when length of text message changes
                - fixed bug which corrupted sprite position data following window resize
                - set a default sprite in main loop events to fix spawning bugs
4.5  15.02.2014 - don't page out the end of the game code when saving
                - only save a loading screen if one was supplied by the user
                - fix screen corruption when jump table editor reaches limits
                - Added RGB value display to palette editor
4.6  04.10.2014 - fix text buffer corruption when multiple messages are added in one go
                - display screen correctly when positioning objects
4.7  06.03.2017 - added STOPFALL command
                - added S and T variables
                - prevent user creating empty text messages which caused corruption
                - added code templates for pushable blocks and moving platforms
                - COLLISION can now be used to detect sprites of the same type
                - BEEP values over 127 now produce white noise sound effects
                - removed requirement for sprite to be standing on a solid block before a jump
                - stopped text messages corrupting PUTBLOCK
                - temporarily compress sprites to free up memory when editing events
                - water blocks are now working correctly
                - copying and pasting 16x24 pixel sprites now copies the entire image
                - BEEP no longer changes the border colour to black
                - various minor engine changes
4.8  16.02.2019 - numerous bug fixes and improvements to game engine made in 2018
                - clip sprites at top and bottom of screen
