1. Generally speaking, screens will occupy more space in memory when the game area is larger and they are composed with several different blocks. 2. It depends on several parameters, such as the overall length of the song and the number of samples and patterns employed to compose it. To that you must add the starter/silencer and player code. To give you a rough estimate, the medley song that plays in Lost In My Spectrum 2.0 is 3022 bytes long, while the total length of the music block is 5280 bytes. 3. Can't really answer that, sorry. (I am not using AGD multi platform until I know for certain that it allows CALLs to external code, performed in traditional AGD by means of the ASM 205 instruction; to me, this is a fundamental feature.)
Post by Jonathan Cauldwell on Nov 24, 2018 23:56:45 GMT
AGD compresses consecutive blocks of the same type, left-to-right with overflow from one line to the next. If you have a block of 8x8 bricks of the same type that appears a lot, that compresses well. blanks space does too. Platforms do if they're made of a single block.
AGD uses about 34K or something like that, the editors get in the way of the rest but you can always use that for your front end. Plenty of room for BASIC. Multi-Platform AGD can use every byte of Spectrum RAM so larger games can be created.
Alessandro, I've added a CALL instruction at your request. Download version 0.7.2
Thanks Jonathan, it's nice to know how screens are compressed behind the curtains
So it seems I could be migrating my game to the multi-platform AGD, but I have a question that I must ask ... I'm too used to check free memory every now and then in ZX Spectrum AGD, how can I check the remaining memory in the multi-platform AGD?
I'm trying to get my game finished but I am really having problems with memory, so I'm having to make some sacrifices. It says above that "Multi-Platform AGD can use every byte of Spectrum RAM so larger games can be created." At the moment the memory usage tool is showing:
Post by Jonathan Cauldwell on May 22, 2020 15:49:06 GMT
Sounds like you're pretty close to the limit. Remember, the first 8K of Spectrum RAM is used by the screen, system variables, BASIC etc. 40K is pretty much what you get to play with on a Spectrum. If you're getting crashes the game is probably overwriting the screen address table at the end of RAM. If you like I could release a modified version of the engine that does away with that table, effectively using the slightly slower original AGD code. That would free up another 512 bytes