Commit Graph

  • 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. Jeremy Rand 2020-12-25 23:59:09 -0500
  • a5296ee1b8 Fix the bug where shots can pass through a mostly destroyed mushroom, this time for real. Jeremy Rand 2020-12-25 22:26:13 -0500
  • 929343aead Add a bug for the muddy sound on real HW. Jeremy Rand 2020-12-25 01:19:19 -0500
  • 917c5b97f0 Also change the volume to 0 for looping sounds which are to be stopped. Jeremy Rand 2020-12-25 00:38:58 -0500
  • 58cc259d67 Track whether the looping sounds are or are not playing with some boolean values. Jeremy Rand 2020-12-24 23:50:17 -0500
  • e80579f983 Add some TODO items and remove the sound TODO. Jeremy Rand 2020-12-24 00:45:34 -0500
  • 493473724b Add some more bugs to the list based on tonight's play testing. Jeremy Rand 2020-12-24 00:31:39 -0500
  • 91ce6ada31 Extend the length of the flea sound and describe the spider junk bug some more. Jeremy Rand 2020-12-24 00:15:50 -0500
  • 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. Jeremy Rand 2020-12-24 00:02:41 -0500
  • 9f74cb46b2 Hit the sound GLU registers directly instead of calling the ROM routines for setting DOC registers. Jeremy Rand 2020-12-23 23:26:52 -0500
  • ea49a5d11c Add the scorpion sounds. Jeremy Rand 2020-12-23 14:54:17 -0500
  • b952d42427 Some cleanup of some dead code for flea sounds. Jeremy Rand 2020-12-22 23:43:17 -0500
  • 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. Jeremy Rand 2020-12-22 23:40:21 -0500
  • 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. Jeremy Rand 2020-12-22 21:25:20 -0500
  • 0dee9929a8 Update the flea sound. Jeremy Rand 2020-12-22 02:57:09 -0500
  • d962e98368 Add the flea sound. Jeremy Rand 2020-12-22 01:00:10 -0500
  • 2f3b04b306 Fix typo in acknowledgements. Jeremy Rand 2020-12-18 13:42:53 -0500
  • da6fbb2831 Add Dagen to the acknowledgements. Jeremy Rand 2020-12-18 13:41:14 -0500
  • 4d2a96673d Add some more bugs to the list. Jeremy Rand 2020-12-18 13:26:42 -0500
  • 32aee75462 Add the segment, spider and extra life sounds. Add some more information about the mysterious crash. Jeremy Rand 2020-12-18 00:50:01 -0500
  • 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. Jeremy Rand 2020-12-17 00:35:56 -0500
  • 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. Jeremy Rand 2020-12-16 12:51:37 -0500
  • d201f80c3b Move the sound code into a gameSound.s file. This is the first step towards going around the sound toolset for playing sounds. Jeremy Rand 2020-12-16 12:00:56 -0500
  • 622f0e5f9f Add an acknowledgement and a bug based on testing on real HW. Jeremy Rand 2020-12-10 22:31:46 -0500
  • 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. Jeremy Rand 2020-12-10 21:55:13 -0500
  • 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. Jeremy Rand 2020-12-10 00:45:48 -0500
  • 8b2e753b68 Load the sounds at startup. Jeremy Rand 2020-12-09 01:38:03 -0500
  • 42585898a4 Rename tileData.pl to genData.pl because we are generating more than just tile data now. Jeremy Rand 2020-12-08 00:28:04 -0500
  • 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. Jeremy Rand 2020-12-08 00:23:42 -0500
  • 1650e8e040 Fix bug where slow head segments would not detect collisions with other segments and change direction. Jeremy Rand 2020-12-04 00:32:42 -0500
  • 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. Jeremy Rand 2020-12-02 23:51:06 -0500
  • 8c40086e03 Add the code to prevent the player from passing through a mushroom. Jeremy Rand 2020-12-01 23:37:17 -0500
  • 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. Jeremy Rand 2020-11-30 00:11:55 -0500
  • 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. Jeremy Rand 2020-11-27 02:19:31 -0500
  • 5258e79176 Add the code to reset the mushrooms after death. Jeremy Rand 2020-11-24 23:44:50 -0500
  • 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. Jeremy Rand 2020-11-24 22:59:08 -0500
  • 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. Jeremy Rand 2020-11-20 00:31:09 -0500
  • 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. Jeremy Rand 2020-11-19 23:45:23 -0500
  • fd40c12d31 Explode a bug when it crashes into the player. When the last segment collides with the player, go onto the next level. Jeremy Rand 2020-11-18 23:36:01 -0500
  • 7d64340b5d Ignore offscreen collisions Jeremy Rand 2020-11-17 23:43:28 -0500
  • 520aaa5a34 Add collision detection for all of the bug types. Remove the debug code for shooting bugs. It is almost a functional game now! Jeremy Rand 2020-11-17 22:53:30 -0500
  • 64f96896f7 Add the ability to shoot. Detect shot collisions with mushrooms and shoot the mushrooms. Remove the ability to randomly shoot the mushrooms because that debug is no longer needed. Fix a bug where the number of infield mushrooms was not being updated for mushrooms which were shot until gone. Jeremy Rand 2020-11-16 23:48:36 -0500
  • 4e6bad0ae7 Start adding the code for supporting shooting. Jeremy Rand 2020-11-16 00:14:08 -0500
  • 51b047e58b Add some items to the todo. But this is by no means a complete list. Jeremy Rand 2020-11-11 23:54:34 -0500
  • 2abb57b1a5 Add the code for detecting player collisions, exploding the player, decrementing the number of lives and maybe ending the game. Jeremy Rand 2020-11-11 23:51:09 -0500
  • 6e49c4c483 Add sprites for ship explosions which are different from the other explosions. Jeremy Rand 2020-11-10 00:07:10 -0500
  • c24b8ad072 Change the spider score colour to be the same as mushroom colours so the player does not detect it as a collision. Add code to display the number of lives and add to the number of lives ever 12,000 points. This lays the groundwork for handling player death and collisions. Jeremy Rand 2020-11-09 00:12:51 -0500
  • f58a831eb9 Fix the bugs related to marking dirty tiles for the player. Everything seems to move smoothly now and works well at 2.8MHz. Next, I need to block the player from going over top of mushrooms. Jeremy Rand 2020-11-05 01:54:12 -0500
  • edcddc0bd8 This build has the player moving in X and Y directions and with cleaner handling of the dirty tile to remove the inefficiencies. The good news is that there is no longer any performance problem at 2.8 MHz now that the inefficient dirty tile handling has been removed. The bad news is that they player leaves garbage behind indicating some kind of problem with dirty tile marking. But it is close. Jeremy Rand 2020-11-05 00:21:46 -0500
  • bb66ef4b03 Replace the C code which built tables at game launch time with a script which generates these tables at build time. This reduces the start time of the application and saves code space and is a necessary step before adding some new tables to handle the mouse efficiently. Jeremy Rand 2020-11-04 22:48:18 -0500
  • c45c3503d6 This is the first step to getting rid of the tile.c file and replace it with generated assembly instead. And then I can add the extra data required to handle the player correctly. Jeremy Rand 2020-11-03 00:11:22 -0500
  • 7c0dc8ebb1 Replace the call to the Toolbox with a raw read of the mouse from ADB registers to try to minimize the cost of mouse polling in the game loop. Jeremy Rand 2020-11-01 22:50:10 -0500
  • 4e500c6f38 Start adding some mouse code and display a player on the bottom row of tiles only for now. No collision detection hooked up and it is terribly inefficient but it seems to work. Jeremy Rand 2020-10-28 23:46:32 -0400
  • 0fa9b45f45 Rework the LHS side of the game screen to have some BuGS branding. Move the number of lives indicator to the left and add a player 1 and player 2 section. Jeremy Rand 2020-10-27 23:59:06 -0400
  • 62fcc82790 Add the code to shoot mushrooms and hook up a debug routine to shoot random mushrooms. Jeremy Rand 2020-10-26 23:26:12 -0400
  • 0dd8222611 Add the code to handle restricting the spider to lower and lower rows as the score goes up. This is the final bit of game logic necessary for the bugs in the game I think. Jeremy Rand 2020-10-26 22:32:46 -0400
  • 123c3a48ef Add some comments about the spider score threshold yet to be implemented where it is restricted to a smaller and smaller space close to the player. Jeremy Rand 2020-10-25 23:25:23 -0400
  • 5a08aefab5 Fix the code for setting the starting flea speed based on the score threshold. Jeremy Rand 2020-10-25 23:19:31 -0400
  • 96a6b6f51f Implement the code to add the flea at the right time. This includes tracking the score in multiples of 20,000 and adjusting the number of mushrooms required in the infield before a flea will appear. Simplify the other score based thresholds which are based on multiples of 20,000 to use this test. Add debug which allows me to add 20,000 to the score whenever I want so I can test these thresholds more easily. Jeremy Rand 2020-10-25 23:11:11 -0400
  • bb1cd9b7ba Remove the debug code to control the scorpion speed now that the logic is implemented for that. Jeremy Rand 2020-10-23 00:25:00 -0400
  • 1d4f783a3e Change the code for centipede speed to skip slow speed segments entirely once the score is more than 40000. Add segments at the start of the next level in reverse order so the single head segments are added first. This ensures they do collision detection properly in the updateSegment code. Fix a bug where a set of 16 tiles were always marked as occupied by a centipede segment because we didn't clear it properly on each updateSegment call. This fixed a problem with segments changing direction for no apparent reason. Test for collisions on the two tiles the segment is spanning and change direction if either is occupied. This should eliminate single segments travelling on top of each other. Add scorpions randomly during a game once we get to level 4. They are added with a 1 in 512 chance every 60 seconds so you should see a scorpion about once every 10 seconds or so. When the score is above 20000, add scorpions at fast speed 3/4 of the time, slow speed the other 1/4 of the time. Lower scores, the scorpion is always slow. Jeremy Rand 2020-10-23 00:20:18 -0400
  • 9a34532d77 Implement the code to add spiders to the game. From my testing, it looks like 2 seconds after a spider leaves the game (either shot or off the screen), another one is added. Also, once the score is about 5000, the spiders added will be fast. The only spider behaviour I know of which is so far not implemented is as the player reaches higher levels, the spider constrains itself closer and closer to the bottom of the screen. Jeremy Rand 2020-10-22 00:00:16 -0400
  • 1f26b38784 Fix the order of colours for the different levels. Remove the debug code to add centipedes and change the colour palette. This is gone now because we now have the concept of starting a game and progressing through levels with different kinds of centipedes running at different speeds with different palette colours. Jeremy Rand 2020-10-20 23:13:46 -0400
  • 6c3b8398a8 Add the code to start a game and iterate through levels. We don't detect the end of a level yet though. Jeremy Rand 2020-10-19 23:34:08 -0400
  • 04d2e74f15 Add the data about the different levels from a centipede segment perspective. Jeremy Rand 2020-10-17 16:36:12 -0400
  • 99c7d98998 Add some comments about the lack of checking of a score "overflow". Jeremy Rand 2020-10-13 23:28:39 -0400
  • a1b4013e1c Hook up the score. Shooting fleas, spiders, scorpions or segments will increase the score. We track the score in two ways. One is just as a 32-bit unsigned integer for doing numeric comparisons on the score (say to the high score list to be implemented in the future) and secondly as a series of numeric digits displayed in a tile. Both are updated. Jeremy Rand 2020-10-13 23:24:15 -0400
  • b85000b4ed Start adding the infrastructure for levels and score. Jeremy Rand 2020-10-13 00:09:37 -0400
  • a7d1db68e2 Add the code to add head segments once the centipede reaches the bottom of the screen. Jeremy Rand 2020-10-08 23:59:34 -0400
  • 6969da19b9 Add code to accelerate to fast speed if the last segment. Jeremy Rand 2020-10-02 14:57:38 -0400
  • eb418fb1c4 Add the ability to shoot centipede segments. Jeremy Rand 2020-10-02 14:50:14 -0400
  • 74a21db9e0 Change the starting position so we get a collision right away. Jeremy Rand 2020-09-24 23:19:43 -0400
  • 766eaf6273 Add the code to detect segment collisions and change direction if a head is colliding with another head or body segment. Jeremy Rand 2020-09-24 23:17:39 -0400
  • a9f62257f9 Reverse the order in which segments are added in memory and add some data for tracking the tiles occupied by segments. This will allow for segment collision detection next. Jeremy Rand 2020-09-23 23:04:05 -0400
  • 69efb23800 Some minor optimization to the update code and check for a mushroom in the tile we are moving into and the next tile when we need to decide to change direction. This better reproduces the real game's behaviour. Jeremy Rand 2020-09-23 22:42:02 -0400
  • 1dfbe8156a Add support for having both fast and slow centipedes in play at the same time. Jeremy Rand 2020-09-21 22:57:06 -0400
  • c4902f486b Add some global data to have a bit mask of tiles which contain a centipede segment. This will allow the update code to figure out if centipede segments are colliding and if so, change direction. Still need to write some codegen for this global constant data rather than building it at runtime in C. Jeremy Rand 2020-09-20 22:22:58 -0400
  • a9d3b12725 Add code to poison a centipede. Jeremy Rand 2020-09-13 16:08:32 -0400
  • 03466f8847 Add code to allow a centipede and all its body segments to scroll in at the top of the screen at slow speed. Need to do the same for fast speed. Jeremy Rand 2020-09-13 15:18:18 -0400
  • f99ff8e816 Add all the code to handle double speed centipede segments. Jeremy Rand 2020-09-13 14:54:18 -0400
  • dc5ab4720d Fix bugs that cause the centipede segment to drop as if poisoned when it reaches the bottom half of the screen. Jeremy Rand 2020-09-13 13:32:25 -0400
  • ab5f5c6299 Fix bug in code that looks for the edge of the screen which was comparing by tile number, not tile offset. Jeremy Rand 2020-09-11 00:25:41 -0400
  • 46567659e9 Add the code to animate the segments at slow speed. There is a bug where the centipede seems to get stuck along the left edge sometimes. But overall looks pretty good. Jeremy Rand 2020-09-11 00:01:30 -0400
  • 0362b53e2c The head segment is now animating to the right. But it needs better support for segment speed and it needs to change direction when it reaches an obstacle. And all of the other directions to write still. Jeremy Rand 2020-09-09 23:53:51 -0400
  • 0d4677c397 More work towards the animation of centipede segments. Jeremy Rand 2020-09-08 23:54:44 -0400
  • 36617cbf9d Lay some more groundwork for animating centipede segments. We now have an array of 96 (97 actually) entries which describe the position of the segment now or in the past. By keeping past information, body segments which follow head segments will take no calculation to update. We just have to animate head segments and body segments will follow them 8 pixels behind automatically. Jeremy Rand 2020-09-07 22:35:32 -0400
  • 3b541f8482 Fix bug leading to crash when trying to add centipede body segments. I needed to have a nop instruction after the self-modifying long jump. I am writing 4 bytes of the address into the long jump which only uses a 3 byte address and I was corrupting the next instruction. Inserting a nop ensures no corruption happens. Jeremy Rand 2020-09-06 13:39:00 -0400
  • f5d1aa9ee6 Improve the performance of the centipede segment draw function. Jeremy Rand 2020-09-06 02:05:33 -0400
  • 07f8df4b4f Draw the scorpion once we are sure the beam has past it on the screen for the previous frame. Adjust the wait for VBL look to look for less than scan line 200 rather than scan line 0. That way, we shouldn't get a frame glitch at 2.8MHz any more. Jeremy Rand 2020-09-06 01:54:47 -0400
  • 92c02ded0f Simplify the handling of the dirty tiles to just store the dirty word and not keep the array of dirty tile offsets. Have the flea use game and non-game dirty tiles to fix the problem with LHS tiles being marked dirty all the time. Jeremy Rand 2020-09-04 01:55:38 -0400
  • 22a22d3533 Change the code to race the beam down the screen, redrawing the dirty game rows as it goes. Jeremy Rand 2020-09-04 00:17:19 -0400
  • b07221c363 Change from an array of structs to a series of individual arrays for the tile information. This makes it easier to index into the arrays because the tile number * 2 is the offset, rather than tile number * 16. Jeremy Rand 2020-09-02 00:15:53 -0400
  • df56cdecf1 Add the ability to display head segments of the centipede. Body segments is not working yet. Jeremy Rand 2020-08-27 23:36:16 -0400
  • 3a63b2ef1b Add code to support marking dirty tiles under head and body segments. Jeremy Rand 2020-08-27 22:36:04 -0400
  • d8e9c6863b Add the code to draw the body and head segments in the game loop. Still need to add code to create, update and shoot segments. Jeremy Rand 2020-08-26 23:44:41 -0400
  • 67e2b56dc2 Add some more code to support adding bug segments to the game. Jeremy Rand 2020-08-10 23:58:49 -0400
  • 7d7afc908d Use macros to reduce the copy/pasted code for marking tiles as dirty. Rough out the support for body and head segments. Jeremy Rand 2020-07-30 23:34:48 -0400
  • 2b45813cbb Increase the chance that a flea produces a mushroom. Jeremy Rand 2020-07-28 15:44:55 -0400
  • 8bcd4fccf6 Add the code to support switching between fast and slow spiders. Jeremy Rand 2020-07-27 23:30:11 -0400
  • 883d882d0e Provide an API to set the default speed of a flea or a scorpion. This will allow the speed to be changed for different levels in the game. Need to add this API for spiders also. Jeremy Rand 2020-07-27 22:27:18 -0400