I noticed that games created with the Multi-platform AGD are always stored in the RAM starting at 24576. While this is fine for single titles, it is a huge handicap for me, because I am used to "chain" AGD projects into larger games. This is only possible if the memory space from (usually) 24500 to 31000 is reserved for the "housekeeping" program, which manages the options menu, RAM bank switching, high score table etc., and for storing compressed frontend and user interface images. Would it be possible to relocate the code to a higher address, as long as the whole of it does not hit the final 768 bytes of RAM reserved for sprite buffering?
Also, the source code seems to include every possible effect like lasers, starfields, AY sounds, etc. If I do not use such features in a project, could I simply delete them to save space without making a mess?
Post by Jonathan Cauldwell on Mar 3, 2019 16:12:59 GMT
The code can be located at any address without issues, just change the org. As you have already realised, the final 768 bytes of RAM on the Spectrum version are used to store the block types for each position on screen so anything you put there would be overwritten.
You're right, the source code includes almost everything in the engine so if you're confident enough to remove unused routines, do so. In fact, consider publishing your modified engine so that others can use it, that's the whole idea. Kees made a more efficient job of the Atom compiler, which only includes the bits that are used and separating out some of the components and making them conditional is on the list of things to do for the ZX/CPC/Timex, it's just somewhere near the bottom so won't get done any time soon.
Current priorities are adding an Enterprise option to the editor, writing a routine to convert the v4.7 CONTROLMENU command from imported snapshots into an equivalent cross-platform script and trying to work out why the import-from-tapfile code isn't working!