aboutsummaryrefslogtreecommitdiff
path: root/.nasm/memory.txt
Commit message (Collapse)AuthorAgeFilesLines
* Cycle the kind of shuttle to be usedMiquel Sabaté Solà2026-04-021-3/+4
| | | | | | | | | | In preparation to having multiple kinds of shuttles as in the original game, introduce the 'Globals::zp_shuttle_kind' variable, which is just a helper value by masking out the 'Globals::zp_level' variable. This in turn will be the index for selecting which tile IDs for each shuttle part. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Update scores on screenMiquel Sabaté Solà2026-03-251-1/+2
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add support for adding scoresMiquel Sabaté Solà2026-03-251-1/+3
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Try to initialize enemies on unique Y coordinatesMiquel Sabaté Solà2026-03-221-1/+2
| | | | | | | | | | | | That is, our PRNG algorithm is so stupid that sometimes it cycles into the same value multiple times. While play testing, sometimes we were so unlucky that we got all enemies on the same Y screen coordinate. As funny as these situations can be, this shouldn't happen, so I have introduced an (awesomely named) function that makes a harder effort at finding a unique random number. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Let fuel tanks be delivered separatelyMiquel Sabaté Solà2026-03-181-1/+2
| | | | | | | | | Fuel tanks follow a different logic than regular items, in which they should be delivered almost instantaniously whenever they are needed. Hence, a new (much shorter/snappier) timer is provided for fuel tanks alone. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Use specific variables for cached player's tile coordinatesMiquel Sabaté Solà2026-03-181-1/+3
| | | | | | | | | Before this commit we were using the zp_argX variables, but this can go wrong, and more so considering other functions like background collision checking also use these variables. All in all, since we have plenty of RAM to spare, let's just allocate a new set of bytes just for that. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Implement falling itemsMiquel Sabaté Solà2026-03-131-1/+2
| | | | | | | | | Every now and then an item will fall and, as in the original game, a fuel tank will be delivered whenever needed. There are still some things left out for later changes, like picking up items mid-air, or background effects for the rocket being filled with fuel. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Join 'zp_moved_out' and 'zp_pause_toggle'Miquel Sabaté Solà2026-03-121-3/+2
| | | | | | | It was wasteful, and it was there just because of my lazyness. Let's be a bit less careless. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Initial implementation for itemsMiquel Sabaté Solà2026-03-111-1/+6
| | | | | | | | | | This now only supports the appearance of shuttle parts and the fact that the player can collect them at a very specific order and drop them so to stack up the final shuttle. This is of course just the skeleton and there's a bunch of TODO's left. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add a blinking animation on player selectionMiquel Sabaté Solà2026-03-081-1/+4
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Support reading from the second controllerMiquel Sabaté Solà2026-03-081-4/+3
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Define the bitmap for multiplayer supportMiquel Sabaté Solà2026-03-081-1/+2
| | | | | | | Also give it a dummy value on start and initialize it properly after the player's selection on the title screen. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Move some variables into another memory regionMiquel Sabaté Solà2026-03-071-5/+5
| | | | | | | | The zp_player_tile_* variables fit perfectly with the space that is left in the $0x memory region. This allows for a more contiguous space (e.g. on $Cx) for other elements to come (e.g. items). Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Update the explosions' pool capacityMiquel Sabaté Solà2026-03-071-3/+3
| | | | | | | More enemies means more possible explosions. Hence, increase the pool's capacity by one to match the recent change in enemies per screen. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Bump up to 4 enemies per screenMiquel Sabaté Solà2026-03-061-8/+8
| | | | | | | | This is more similar to the original game, and it's a bit more fun. In order to do so some variables had to move into another memory page, but that's fine as we have plenty. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Rename scoped variables without being redundantMiquel Sabaté Solà2026-03-061-7/+7
| | | | | | | Some variables had the same name of the scope in their names as well. Remove this redundancy everywhere. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Toggle a "Paused" message on top of the screenMiquel Sabaté Solà2026-03-061-1/+2
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Don't toggle pause from a holded buttonMiquel Sabaté Solà2026-03-061-0/+1
| | | | | | | | | | | If you just holded the Select or Start buttons, it would be forever toggling pause/unpause, which is an unexpected behavior. Fix this by saving which value from the joypad was previously read. With this, whenever the pause timer reaches zero, we can check whether either button is still pressed, and avoid toggling if that is the case. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Remove the pool size from enemiesMiquel Sabaté Solà2026-03-051-2/+1
| | | | | | It was never read anyways, so let's drop it. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Make enemies more colorfulMiquel Sabaté Solà2026-03-051-1/+2
| | | | | | | Each enemy also has its own palette upon creation. This way we add more variety as it was on the original game. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add the Game Over screenMiquel Sabaté Solà2026-03-051-1/+3
| | | | | | | This is still missing the support for player 2, but I've left traces about it. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Update lifes left for player 1Miquel Sabaté Solà2026-03-041-1/+2
| | | | | | | The whole handling of player 2 will come whenever I set to implement multi-player for this game. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add collision with the playerMiquel Sabaté Solà2026-03-041-1/+8
| | | | | | | This allows for explosions to run after making the player to disappear, and it re-runs the entering scene timer. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Let enemies die whenever they touch a bulletMiquel Sabaté Solà2026-03-031-1/+2
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add a pool of explosion effectsMiquel Sabaté Solà2026-03-031-1/+4
| | | | | | | For now this only applies to enemies, but it's general enough so it can target any given coordinate, and hence any given object. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Initial iteration of enemy movementMiquel Sabaté Solà2026-02-121-2/+4
| | | | | | | For now only the basic algorithm has been written, but the framework for adding the rest has also been written down. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* nasm: always save memory/segments statsMiquel Sabaté Solà2026-02-111-0/+54
And don't let git ignore it. From now on this will be available in git as well so to detect regressions. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>