Commit Graph

194 Commits

Author SHA1 Message Date
Jeremy Rand
7382a7f4aa Just do writes to the DOC when initializing the sound without a read check. The read check seems to fail for the size register for some reason. Bump the version number. 2021-01-24 14:04:49 -05:00
Jeremy Rand
13f8602048 Finish changing the sound code to adopt the new method for modifying registers. 2021-01-23 11:39:01 -05:00
Jeremy Rand
9d42dd3c59 Move to a table based approach for setting up the DOC registers, still have some more sounds to move to the tables. 2021-01-22 17:44:13 -05:00
Jeremy Rand
a7b404c676 Turn on optimizations on the C code to make it smaller. Ran out of code space in the main 64k bank. More changes to the sound register accesses. 2021-01-22 14:41:05 -05:00
Jeremy Rand
25765e6975 More rework from last night of the sound code to adopt new register writes. 2021-01-22 14:15:22 -05:00
Jeremy Rand
0d681e3571 Move more sounds to the new modify and verify method of writing to the DOC. 2021-01-22 00:52:41 -05:00
Jeremy Rand
a4a4b9ae4d Start to change the sound code to wait for the doc to be free and to write and then read to verify that the register write succeeded or try again. That seems to cleanup the sound on real HW. I have only done this for the bonus and the firing sound but probably all register writes should be done this way. 2021-01-22 00:34:07 -05:00
Jeremy Rand
cf85ec4cb3 Update the version information. 2021-01-20 22:33:09 -05:00
Jeremy Rand
14cef25d9b Mark this build as 0.9.3 beta. I think this project is now feature complete for release. 2021-01-20 22:20:43 -05:00
Jeremy Rand
2a52b21f8a Fix bug where the flea sometimes would appear before the second level actually started. 2021-01-20 22:14:59 -05:00
Jeremy Rand
815758f3ff Rework the game logic to support one and two player games. 2021-01-20 00:06:32 -05:00
Jeremy Rand
3a77ba1367 Add the source wav files that I used for the sound samples and add a script which I used to convert them to a raw format that can be played on the GS. That should make it easier to modify the sounds if necessary in the future. Converting the sounds from wav to raw is not part of the build. The raw files themselves are committed in the repository although the build could be changed to generate the raw sounds at build time. 2021-01-18 00:34:50 -05:00
Jeremy Rand
1b7d2e240b Fix a bug where it was possible for the player to collide with an exploding bug and then die. Change explosions so they are drawn using background colours which do not result in player collisions. 2021-01-18 00:18:31 -05:00
Jeremy Rand
678a9ee104 Add code to keep track of two separate screens of mushrooms for player 1 and player 2. 2021-01-17 14:51:36 -05:00
Jeremy Rand
230d1f344c Fix the message to print the right player number when there is a high score. 2021-01-14 23:18:52 -05:00
Jeremy Rand
384a9ea233 Make more globals per player and index into them with the player number at game time. 2021-01-10 23:17:05 -05:00
Jeremy Rand
1cd4ccea3a Start work on supporting two player games. When the user starts a two player game now, two scores are initialized and the number of lives of the two players are independently tracked. Also, all of the score code has been updated to increment the player one or player two score correct. Still need to implement the logic to save the game state per player and switch between the players on each death. 2021-01-06 23:27:51 -05:00
Jeremy Rand
4700bd9cff Fix a bug where the collision and collisionAddr writes went to the wrong bank, leading to memory corruption and crashes. 2021-01-06 22:21:31 -05:00
Jeremy Rand
e2e4da9e37 Modify the build to also put a copy of the disk image on my webserver so it is easy to get onto my real GS for testing. 2021-01-05 22:43:00 -05:00
Jeremy Rand
b8ab0d80aa Change the build to put the executable into a 800k disk image and have a separate boot image. This will make it easier to distribute because the 800k disk image is the release. Bump the version to 0.9.1. 2021-01-04 22:34:45 -05:00
Jeremy Rand
50c924e1ff Look at two pixels wide when detecting collisions with a shot. I believe this solves the problem of shots passing through a centipede. 2021-01-03 23:57:21 -05:00
Jeremy Rand
a84d135819 Mark managing a local high score list as done. 2021-01-01 23:15:11 -05:00
Jeremy Rand
3bb4572eb8 Prompt for the initials of the player when they get a high score. 2021-01-01 23:09:46 -05:00
Jeremy Rand
767a8ba9ab Fix bug in how the old scores are pushed down. They must be copied backwards. 2020-12-31 15:03:08 -05:00
Jeremy Rand
4c7e52af58 Scores are now added to the top ten list of high scores and saved to the settings file. There seems to be a bug with moving all of the other scores down but it is a start. The initials are hard coded to my own for now. 2020-12-31 14:04:20 -05:00
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