Commit Graph

61 Commits

Author SHA1 Message Date
Jeremy Rand
bbe4bd7c6a Version 1.0 is released! 2021-02-16 23:36:06 -05:00
Jeremy Rand
d7bfef38b7 Update the project readme. 2021-02-14 16:45:42 -05:00
Jeremy Rand
0e1e35c7cb Lots of updates to the readme. Add some bars along the left and the right to delineate the play area. 2021-02-12 17:31:30 -05:00
Jeremy Rand
c0b76e46bc Add the icon into the resources so if the Icon folder isn't copied, the icon of the application will be preserved in the resources. Start to add some of the resources to support Versions updates. 2021-02-05 00:14:24 -05:00
Jeremy Rand
e213cc918b Fix the last known bug. The "Game Over" screen is now shown when the first of the two players in a two player game runs out of lives. 2021-02-01 22:31:53 -05:00
Jeremy Rand
f6ecb9bf65 Add some comments about my testing at 50Hz and add a new bug for the lack of a "GAME OVER PLAYER #" message in a two player game. 2021-01-27 23:28:06 -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
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
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
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
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
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
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
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
ea49a5d11c Add the scorpion sounds. 2020-12-23 14:54:17 -05:00
Jeremy Rand
d962e98368 Add the flea sound. 2020-12-22 01:00:10 -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
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
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
8c40086e03 Add the code to prevent the player from passing through a mushroom. 2020-12-01 23:37:17 -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
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
Jeremy Rand
520aaa5a34 Add collision detection for all of the bug types. Remove the debug code for shooting bugs. It is almost a functional game now! 2020-11-17 22:53:30 -05:00
Jeremy Rand
4e6bad0ae7 Start adding the code for supporting shooting. 2020-11-16 00:14:08 -05:00
Jeremy Rand
6e49c4c483 Add sprites for ship explosions which are different from the other explosions. 2020-11-10 00:07:10 -05:00
Jeremy Rand
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. 2020-11-05 00:21:46 -05:00
Jeremy Rand
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. 2020-11-04 22:48:18 -05:00
Jeremy Rand
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. 2020-10-28 23:46:32 -04:00
Jeremy Rand
62fcc82790 Add the code to shoot mushrooms and hook up a debug routine to shoot random mushrooms. 2020-10-26 23:26:12 -04:00
Jeremy Rand
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. 2020-10-25 23:11:11 -04:00
Jeremy Rand
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. 2020-10-22 00:00:16 -04:00
Jeremy Rand
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. 2020-10-13 23:24:15 -04:00
Jeremy Rand
b85000b4ed Start adding the infrastructure for levels and score. 2020-10-13 00:09:37 -04:00
Jeremy Rand
a7d1db68e2 Add the code to add head segments once the centipede reaches the bottom of the screen. 2020-10-08 23:59:34 -04:00
Jeremy Rand
eb418fb1c4 Add the ability to shoot centipede segments. 2020-10-02 14:50:14 -04:00
Jeremy Rand
1dfbe8156a Add support for having both fast and slow centipedes in play at the same time. 2020-09-21 22:57:06 -04:00
Jeremy Rand
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. 2020-09-20 22:22:58 -04:00
Jeremy Rand
7d7afc908d Use macros to reduce the copy/pasted code for marking tiles as dirty. Rough out the support for body and head segments. 2020-07-30 23:34:48 -04:00
Jeremy Rand
bf01c47285 Getting close to having the spider fully implemented... 2020-07-26 00:05:32 -04:00
Jeremy Rand
aa2e5408da Some code for adding a spider on the LHS. 2020-07-24 14:42:03 -04:00
Jeremy Rand
4f74d630b9 Start coding support for the spider. Also, try to show the performance of the main game loop in the border colour. 2020-07-23 23:41:12 -04:00
Jeremy Rand
c614164c14 Add code to get scorpions animating to the left. Lots of cleanup, adding a global data section that also has important global constants. 2020-07-21 21:47:50 -04:00
Jeremy Rand
1ccdb1d0b6 Start to get scorpion support into the game. 2020-07-20 23:04:27 -04:00
Jeremy Rand
b813253c83 Add support for shooting fleas. When a flea is shot once, it accelerates its drop to the bottom. On the second shot, it explodes. 2020-07-20 00:05:18 -04:00
Jeremy Rand
88ea840e23 Update the flea sprite as it drops. Add random routines. Thanks to John Brooks for those. Use the random routines to pick a column for the flea to drop from. Also, randomly leave behind a mushroom as it falls. 2020-07-19 15:15:45 -04:00
Jeremy Rand
36104869b8 Add the code to animate a flea down the screen on demand. 2020-07-18 23:41:21 -04:00