aboutsummaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Don't toggle pause from a holded buttonMiquel Sabaté Solà2026-03-061-0/+5
| | | | | | | | | | | 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>
* Add collision with the playerMiquel Sabaté Solà2026-03-041-5/+6
| | | | | | | 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>
* Add a pool of explosion effectsMiquel Sabaté Solà2026-03-031-2/+2
| | | | | | | 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>
* debug: Add general debugging counterMiquel Sabaté Solà2026-03-021-0/+3
| | | | | | | | This counter is useful to account for certain numbers in hot spots. This way, and with a memory viewer or a debugger, you can directly tell whenever something is off. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Remove vector.sMiquel Sabaté Solà2026-02-131-0/+5
| | | | | | | | | | | | | | | | | Instead of this, the 'reset' function can go into 'jetpac.s', as we could consider it's part of the 'main' work. As a bonus, doing this alignment gives us 3 bytes back from ROM space. Not that we care too much about space, but it's amusing nonetheless. The debug scope has been moved into its own file in include/. Admittedly it's not the most crucial file in the project, but it makes things more logical and it opens the door to more debugging utilities. This leaves us with a vector.s file only containing interrupt code. Thus, it just makes sense to rename it to interrupts.s, which in the end makes things more organized. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Initial iteration of enemy movementMiquel Sabaté Solà2026-02-121-1/+1
| | | | | | | 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>
* Add a sanity check for the LEVEL variableMiquel Sabaté Solà2026-02-101-0/+5
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Allocate all enemies on sprite cyclingMiquel Sabaté Solà2026-02-101-1/+1
| | | | | | | The previous commit only tackled the first enemy, this one handles the "rest_o_enemies" code flow, which was entirely missing. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* enemies: add inner movement and facing logicMiquel Sabaté Solà2026-02-101-1/+1
| | | | | | | | | Enemies now have the ability to be displayed on screen, face at the direction that they were assigned to at random during initialization time, and they also have a timer that dictates some inner movement, similarly as it happened in the original game. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add the __fallthrough__ pseudo-instructionMiquel Sabaté Solà2026-02-031-0/+10
| | | | | | | | The 'nasm' assembler now implements this, which is quite convenient. Define also a fake macro for it when the assembler is not 'nasm' just to bridge the gaps. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Adapt the code to play well with nasm's asanMiquel Sabaté Solà2025-12-155-27/+28
| | | | | | | The address sanitizer from nasm provides quite a few goodies, so let's adapt the code more to it to benefit from those. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add the segment on globals.sMiquel Sabaté Solà2025-05-151-0/+2
| | | | | | Possibly not an issue, but it's better to be safe than sorry. Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Define the notion of a levelMiquel Sabaté Solà2025-05-151-0/+8
| | | | | | | | | This is for now just a variable that will be set during initialization, and that it can be influenced through the `LEVEL` make variable. Both the level and the level "kind" notions are used tracking, at least, which kind of enemy wave we have to send. Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Add the ability to pause the gameMiquel Sabaté Solà2025-04-031-1/+2
| | | | Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Disable the PPU between the title to main screensMiquel Sabaté Solà2025-03-192-3/+7
| | | | | | | During other transitions like game over and such it might also be needed to have something similar, but for now this should cut it. Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Add a title and a main screensMiquel Sabaté Solà2025-03-134-1/+101
| | | | | | | | This commit adds the skeleton for having a title and a main screen. For now the title menu doesn't do much, as the selection is simply ignored, but at least it already knows how to cycle between these two states. Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Start with a skeleton for the projectMiquel Sabaté Solà2025-03-124-0/+57
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>