Commit Graph

169 Commits

Author SHA1 Message Date
Jeremy Rand
4d6f8d39f1 Change the prompt when the stereo channels are swapped so the user gets some feedback. Display the high score list. Still need to add the code to update the high score list. 2020-12-30 23:10:22 -05:00
Jeremy Rand
6947d8762c Add a way to swap left and right stereo channels and save the value in the settings. 2020-12-30 02:31:18 -05:00
Jeremy Rand
1cd301548a Validate the magic number and the version of the settings file. For now, I am not trying to handle backwards compatibility of settings file but it will be possible to do that in the future. 2020-12-30 00:01:58 -05:00
Jeremy Rand
9228f247e5 Add code to load and save a settings file which will hold high scores and some other information. 2020-12-29 23:56:51 -05:00
Jeremy Rand
aee2b26fea Add some info about how to start a game and quit and make space for showing the high score list. 2020-12-29 14:15:25 -05:00
Jeremy Rand
10a1d075fd Add support for pausing the resuming the game. Now, any key pressed during a game pauses the game. Pressing q from the paused game will quit the game and any other key will resume the game. So, quiting with a game in progress takes two key presses. One key press to pause the game and then the user must press q or Q to actually quit. 2020-12-29 00:00:39 -05:00
Jeremy Rand
24bce50a6e Update the todos and the aknowledgements. 2020-12-28 00:52:47 -05:00
Jeremy Rand
acfb7bec13 Add the new icon from fatdog. 2020-12-28 00:48:49 -05:00
Jeremy Rand
8963a9d76c I believe I have fixed the invisible mushroom bug. I have inspected all of the code which sets a tileType to something that didn't mark the tile as dirty. I believe the problem occurred because the code in update which placed/changed mushrooms assumed that the draw code which then mark the tile as dirty because the bug which caused the change which dirty that tile. But that is an assumption. If the bug is shot, perhaps the draw routine will not mark the tile dirty. So, now the tile is always marked dirty right at the point where the mushroom is placed. I believe this will fix the problem but more play testing is required to confirm I don't see it anymore. 2020-12-26 15:26:19 -05:00
Jeremy Rand
cdded307f9 When looking for collisions, treat the lowest collision as the one that counts. Before this, if you had two stacked mushrooms, it was possible to shoot through the mushroom below and "hit" the mushroom above. This happened because the first collision found was the one that the game handled. If the shot ended up being draw across both mushrooms, then the upper mushroom would record the collision. Now, the collision we care about most is the lowest one which should ensure that the bottom mushroom records to collision always with stacked mushrooms. This is similar to the "shoot through a partial mushroom" problem but is restricted to just when the mushrooms are stacked. 2020-12-26 15:03:29 -05:00
Jeremy Rand
3f0578d142 Fix the crashing bug when the previous game ends with the player colliding with the last remaining segment. 2020-12-26 00:31:54 -05:00
Jeremy Rand
dbbdd156e3 Fix the bug where the tiles on the RHS may be marked dirty and accumulate garbage if the player dies on the RHS. Add some more debug for the crashing bug I am chasing. It looks like more than 12 segments have been added so I am adding debug to detect when the number of segments exceeds 12. 2020-12-25 23:59:09 -05:00
Jeremy Rand
a5296ee1b8 Fix the bug where shots can pass through a mostly destroyed mushroom, this time for real. 2020-12-25 22:26:13 -05:00
Jeremy Rand
929343aead Add a bug for the muddy sound on real HW. 2020-12-25 01:19:19 -05:00
Jeremy Rand
917c5b97f0 Also change the volume to 0 for looping sounds which are to be stopped. 2020-12-25 00:38:58 -05:00
Jeremy Rand
58cc259d67 Track whether the looping sounds are or are not playing with some boolean values. 2020-12-24 23:50:17 -05:00
Jeremy Rand
e80579f983 Add some TODO items and remove the sound TODO. 2020-12-24 00:45:34 -05:00
Jeremy Rand
493473724b Add some more bugs to the list based on tonight's play testing. 2020-12-24 00:31:39 -05:00
Jeremy Rand
91ce6ada31 Extend the length of the flea sound and describe the spider junk bug some more. 2020-12-24 00:15:50 -05:00
Jeremy Rand
d65a4ca307 Fix the high pitched sound at the end of the flea sound. It was an off by one leading to an extra frequency being played. 2020-12-24 00:02:41 -05:00
Jeremy Rand
9f74cb46b2 Hit the sound GLU registers directly instead of calling the ROM routines for setting DOC registers. 2020-12-23 23:26:52 -05:00
Jeremy Rand
ea49a5d11c Add the scorpion sounds. 2020-12-23 14:54:17 -05:00
Jeremy Rand
b952d42427 Some cleanup of some dead code for flea sounds. 2020-12-22 23:43:17 -05:00
Jeremy Rand
b432cf654b Implement stereo sound. Sounds now come from the left or the right speaker depending on where the sound is coming from on the screen as much as possible. 2020-12-22 23:40:21 -05:00
Jeremy Rand
d4d511ee4f Fix the bug where the "can shoot" indicator was sometimes not cleaned up. The real problem was that the mouseAddress was incorrect on the first frame of the next life. It still pointed to where the player died. 2020-12-22 21:25:20 -05:00
Jeremy Rand
0dee9929a8 Update the flea sound. 2020-12-22 02:57:09 -05:00
Jeremy Rand
d962e98368 Add the flea sound. 2020-12-22 01:00:10 -05:00
Jeremy Rand
2f3b04b306 Fix typo in acknowledgements. 2020-12-18 13:42:53 -05:00
Jeremy Rand
da6fbb2831 Add Dagen to the acknowledgements. 2020-12-18 13:41:14 -05:00
Jeremy Rand
4d2a96673d Add some more bugs to the list. 2020-12-18 13:26:42 -05:00
Jeremy Rand
32aee75462 Add the segment, spider and extra life sounds. Add some more information about the mysterious crash. 2020-12-18 00:50:01 -05:00
Jeremy Rand
ec1eb7cc0e Directly control the Ensoniq sound chip by writing to its registers to play sounds rather than using the free form synthesizer functions in the sound toolbox. 2020-12-17 00:35:56 -05:00
Jeremy Rand
763ce0626e Fix problem on real HW where the player will start the next level shooting if they died while shooting, regardless of the state of the mouse. It now ignores the first poll of the mouse at the start of a level to avoid stale poll information. Add some debug in the code for jumping to the head and body segment draw routines to confirm that the table offsets are sane. I have seen a crash which indicates that sometimes the offset is incorrect. 2020-12-16 12:51:37 -05:00
Jeremy Rand
d201f80c3b Move the sound code into a gameSound.s file. This is the first step towards going around the sound toolset for playing sounds. 2020-12-16 12:00:56 -05:00
Jeremy Rand
622f0e5f9f Add an acknowledgement and a bug based on testing on real HW. 2020-12-10 22:31:46 -05:00
Jeremy Rand
0136579125 Disassociate sound resources from the generators they are connected with. Use multiple generators to play multiple shot sounds at the same time. It sounds weird but it kind of works. 2020-12-10 21:55:13 -05:00
Jeremy Rand
bae931aaa6 Add sounds for shooting, killing bugs, dying and resetting mushrooms after death. The shoot sound isn't great because it doesn't restart when rapid fire is happening but this is a start. 2020-12-10 00:45:48 -05:00
Jeremy Rand
8b2e753b68 Load the sounds at startup. 2020-12-09 01:38:03 -05:00
Jeremy Rand
42585898a4 Rename tileData.pl to genData.pl because we are generating more than just tile data now. 2020-12-08 00:28:04 -05:00
Jeremy Rand
73458254e5 Add an acknowledgements file and fill in some information but I need to go through and make sure more people are recognized for their support. Add some raw sounds and include them as resources in the binary. 2020-12-08 00:23:42 -05:00
Jeremy Rand
1650e8e040 Fix bug where slow head segments would not detect collisions with other segments and change direction. 2020-12-04 00:32:42 -05:00
Jeremy Rand
7368281d58 Fix a long standing bug I have ignored for too long. When adding centipede segments on the left or right, if there was a mushroom right where the segment was arriving, it would try to change direction even though it was still mostly off-screen. This lead to some very strange segment tracks that should never happen. I have added code to ignore blocking mushrooms and not change direction when the segment is partially off-screen. 2020-12-02 23:51:06 -05:00
Jeremy Rand
8c40086e03 Add the code to prevent the player from passing through a mushroom. 2020-12-01 23:37:17 -05:00
Jeremy Rand
94c7e3f9e4 Add some infrastructure to block the player from passing through mushrooms. The next step will be to code that algorithm. Also, added a build improvement to better handle assembly errors and pass them in to Xcode. 2020-11-30 00:11:55 -05:00
Jeremy Rand
ae8dde2d87 Add the ability to use mame as the GS emulator. The mouse works better under mame than GSPlus for this game. For now, I have both options in the launchEmulator script with one of them commented out. It would be good to put this into the base Makefile infrastructure so mame could be selected as the emulator to use. 2020-11-27 02:19:31 -05:00
Jeremy Rand
5258e79176 Add the code to reset the mushrooms after death. 2020-11-24 23:44:50 -05:00
Jeremy Rand
7264cf907d Clamp mouse movement to a max of 8 pixels per frame. Add some code which will become the "refresh the mushrooms after death" implementation. 2020-11-24 22:59:08 -05:00
Jeremy Rand
34d16c9944 Implement the code to compare and update the high score. Add a todo for a high score list with initials. Remove the border colour performance debug. 2020-11-20 00:31:09 -05:00
Jeremy Rand
868f4a3199 Fix a crash that would happen if the last centipede segment collided with the player. Both level and player code was trying to start the next level and the corrupted things badly. Now, the level code is always responsible for starting the next level. The player code only restarts a level when the player dies and doesn't finish the level. 2020-11-19 23:45:23 -05:00
Jeremy Rand
fd40c12d31 Explode a bug when it crashes into the player. When the last segment collides with the player, go onto the next level. 2020-11-18 23:36:01 -05:00