Commit Graph

  • 59dc11e516 Make the timeouts configurable with net scores. master Jeremy Rand 2023-06-11 23:33:47 -0400
  • 6afbf4eb85 Finish reworking the network high score code to be independent of BuGS itself so it can be put into its own library. Jeremy Rand 2023-06-11 22:51:21 -0400
  • 2f53df9eb0 Update the project settings to eliminate some Xcode warnings. Jeremy Rand 2023-06-09 00:07:36 -0400
  • 3660b47fd3 Rename globalScores to netScores to work towards moving it to NetScoresGS Jeremy Rand 2023-06-08 20:04:22 -0400
  • 1be8d217f1 Cleanup parse errors which appear in the latest Xcode. Jeremy Rand 2023-06-08 01:15:54 -0400
  • 0ae5fa1b54 More global high score rework towards making it generic. Jeremy Rand 2023-06-07 19:53:14 -0400
  • 37faafb698 More work isolating the global high score code from the game so it can be made a generic library. Jeremy Rand 2022-05-25 22:58:53 -0400
  • b8b9089aa2 Start trying to extract the global high scores code so it can be turned into a generic library. Jeremy Rand 2022-05-25 21:50:38 -0400
  • f1a80c792a Update the Uthernet link layer used in testing from emulators to the latest. Jeremy Rand 2022-03-29 23:48:51 -0400
  • a8bf46bcac Update bootable net image with the latest version of Marinetti. Jeremy Rand 2021-07-30 23:46:40 -0400
  • e5b0432991 Change the polarity of the stereo default. I used to default to "bad stereo" which matched the behaviour of mame, GSPlus and the 4soniq card but was against the Apple standard. The mame code has since been fixed and it seems like all other stereo cards are correct (I am unaware of any others that are backwards). So, by default, BuGS will start in the Apple standard L/R mode. If you have saved your settings previously, your option will be preserved correctly. Also, the display considers Apple standard stereo to be L:R while the non-standard to be R:L in the UI. Jeremy Rand 2021-07-23 23:59:11 -0400
  • a7aeb5c142 Fix the URLs for the download links. Jeremy Rand 2021-07-08 22:31:18 -0400
  • c76cd3d100 Update the readme for the v2.0.1 release. Jeremy Rand 2021-07-08 22:30:08 -0400
  • 25a8fbeacd Display a better message when a score upload fails so it is more clear what happened. 2.0.1 Jeremy Rand 2021-07-08 00:13:26 -0400
  • 40da3b3434 Do not consider a network connection problem a soft error. Bump the version number for an upcoming bug fix release. Jeremy Rand 2021-07-07 20:11:05 -0400
  • bf35d817eb Update the build environment for this project to the latest. Jeremy Rand 2021-07-06 17:04:25 -0400
  • 72a65f53a7 Fix links in the readme. Jeremy Rand 2021-07-04 23:35:08 -0400
  • 913add72b0 Final change before shipping v2.0. 2.0 Jeremy Rand 2021-07-04 23:30:56 -0400
  • 2a43113f4b Add a timeout to the TCP connect state. Prior to this, it was possible to block (indefinitely?) if there is a network glitch when trying to upload a score. Jeremy Rand 2021-07-03 16:42:41 -0400
  • 165d489832 Update the readme with some more information about emulators. Make the random number generator test less likely to result in a series of scorpions appearing one after another. Jeremy Rand 2021-07-02 22:33:38 -0400
  • af16a35ea7 Minor changes to the build to move some stuff to the internal make files. Jeremy Rand 2021-06-30 01:09:46 -0400
  • 9a0791d812 Add a link to the full readme from the project readme. Jeremy Rand 2021-06-30 00:25:35 -0400
  • 408a670e09 Bump the version number and update the readme to describe the requirements for the networking feature. Jeremy Rand 2021-06-29 17:36:51 -0400
  • 739d89add0 Display the position of the players score after upload. Jeremy Rand 2021-06-28 23:12:06 -0400
  • 701585df1a Move non-game code out of the main segment to make more room for more high score code. Jeremy Rand 2021-06-28 22:33:01 -0400
  • 08be64a61c Add some more prompts to be clearer when the network is busy. Allow the user to retry uploading their score. Even if things go wrong, add a retry mechanism so that we will try to get the network connection up after three minutes. Jeremy Rand 2021-06-28 00:03:32 -0400
  • ea085174eb Also include the position of the score and the number of scores in the response to setting a score. Bump the version number. This will become a new beta build soon. Jeremy Rand 2021-06-27 15:48:57 -0400
  • 265d9cbb2e Modify the build to translate the Read.Me.md file into a Teach file for the SW distribution. Jeremy Rand 2021-06-07 00:11:44 -0400
  • ed9f53551c Add the hash toolset to the baseline disk image. Add md2teach so the build can turn a markdown file into a Teach text file at build time. Introduce the Read.Me from the distribution to the GitHub repository as a markdown file so it can be translated to Teach. Jeremy Rand 2021-06-06 23:49:36 -0400
  • e84d6e97c2 Update the version to beta and remove online high scores from the todo list. I now have an implementation of that. Jeremy Rand 2021-06-06 00:24:35 -0400
  • abe5f0c72b Uploading scores is working now. Add timeouts for reads and the close operation so we don't end up stuck in any one state forever. Improve the error handling and provide an error code for debugging purposes if there is a problem. Jeremy Rand 2021-06-05 23:34:30 -0400
  • 2c511fe33a Add some todos for the networking code. Jeremy Rand 2021-06-04 00:42:39 -0400
  • 4e456cab15 Major rework because I am out of code space in the main segment. Move some stuff around in the C code to get them into other segments. Change the network code so that most of its globals are actually allocated dynamically when network functionality is detected. Change the network state machine so the connection is closed and re-opened on each transaction rather than trying to hold the connection open. It was failing during the game because the network is not being polled. Provide some visual feedback if there is a network problem in the game itself. Jeremy Rand 2021-06-04 00:41:11 -0400
  • fb36a28e98 With this commit, processing of the result of a score set request is working. The connection seems to drop during the game and I don't want to poll the network during the game so the next steps will be to close and re-open the connection between games. Jeremy Rand 2021-06-03 00:32:56 -0400
  • 9a77919702 Update some TODOs in the code. Jeremy Rand 2021-06-02 00:39:05 -0400
  • 14cbdbac2b Fix a problem where the players initials were not going to the correct place in the global high score request. Make the set high score request message a multiple of 2. It seems that the hash functions do not agree between the GS and the server when the request is an odd number of bytes. Jeremy Rand 2021-06-02 00:33:53 -0400
  • 35930c72e2 Add the code to send high scores to the server, although it is being rejected right now due to a md5 hash problem in the request that I don't yet understand. Jeremy Rand 2021-06-01 23:53:52 -0400
  • 5e26684fd2 Retrieve global high scores from the Internet and display them in the game. Jeremy Rand 2021-06-01 23:13:14 -0400
  • 4b76293125 Add code to load Marinetti and the Hash tool if present and bring up the network if possible. Jeremy Rand 2021-06-01 00:35:47 -0400
  • 8d95d0a674 Bump the version to 1.9 since this is work towards v2.0. Add the structs for the messages to a server side high score list. Add the hash tool to the boot image for network testing. The requests will use hashes to validate that they come from the game. Jeremy Rand 2021-05-28 00:03:04 -0400
  • 701d9fd312 Add some infrastructure to be able to test networking code from within the emulator. Jeremy Rand 2021-05-20 23:49:14 -0400
  • c3302102d7 Update the readme with some more feedback about trackballs. Jeremy Rand 2021-03-25 17:03:38 -0400
  • dfcf6a66b6 Turns out I only have fixed the "magically appearing mushroom" bug. I fixed it for slow moving centipedes coming on screen but there was a second case of the same problem for fast moving centipedes. So fix that now also. Bump the version number to 1.0.1. I will do a patch update at some point but I don't think this bug deserves pushing out a quick release update. It is an annoying minor bug at most. Jeremy Rand 2021-03-03 22:20:22 -0500
  • cb47d1ff0d Update the TODO with information about running on System 5. Jeremy Rand 2021-02-24 22:45:56 -0500
  • 34d5523c19 Add a new TODO to try to fit a bootable image on a single 800K disk. Jeremy Rand 2021-02-24 17:14:51 -0500
  • 6b7221ed23 Add links to the version 1.0 downloads in the readme. Jeremy Rand 2021-02-17 00:05:02 -0500
  • bbe4bd7c6a Version 1.0 is released! 1.0 Jeremy Rand 2021-02-16 23:36:06 -0500
  • c52671ce95 Change the flea sound frequency change rate to be less steep. Jeremy Rand 2021-02-16 01:46:46 -0500
  • bf943fee07 Bump the version number. Jeremy Rand 2021-02-16 01:39:27 -0500
  • 20b2b6b6af Fix a typo in the readme. Jeremy Rand 2021-02-16 01:38:52 -0500
  • 7d5d24de2e More readme updates. Jeremy Rand 2021-02-14 16:46:20 -0500
  • d7bfef38b7 Update the project readme. Jeremy Rand 2021-02-14 16:45:42 -0500
  • bcc10e2d4e Bump the version 0.9.7. Add some code to preload the sounds after initial launch so starting the first game doesn't take extra long. Jeremy Rand 2021-02-14 14:59:44 -0500
  • 0e1e35c7cb Lots of updates to the readme. Add some bars along the left and the right to delineate the play area. Jeremy Rand 2021-02-12 17:31:30 -0500
  • 10c8111397 Mark support for Versions as done. Jeremy Rand 2021-02-10 00:19:43 -0500
  • a890cc8212 Bump the version. Fix the download URL resource. Fix a typo in the readme file. Jeremy Rand 2021-02-09 23:10:37 -0500
  • b87d3e8870 Update the version information and add a readme to the distribution. Jeremy Rand 2021-02-09 01:01:11 -0500
  • 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. Jeremy Rand 2021-02-05 00:14:24 -0500
  • 49c17c2005 Bump the version number to 0.9.5 beta. Jeremy Rand 2021-02-01 22:32:20 -0500
  • 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. Jeremy Rand 2021-02-01 22:31:53 -0500
  • 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. Jeremy Rand 2021-01-27 23:28:06 -0500
  • 94738ca54c Change the template BuGS.2mg disk image so that the BuGS executable is clearly visible in the finder window. Jeremy Rand 2021-01-26 23:16:37 -0500
  • 23b37d095b Fix the mysterious appearing mushroom bug. Jeremy Rand 2021-01-26 00:25:35 -0500
  • da99d84437 Update the bug list. Jeremy Rand 2021-01-25 10:53:21 -0500
  • 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. Jeremy Rand 2021-01-24 14:04:49 -0500
  • 13f8602048 Finish changing the sound code to adopt the new method for modifying registers. Jeremy Rand 2021-01-23 11:39:01 -0500
  • 9d42dd3c59 Move to a table based approach for setting up the DOC registers, still have some more sounds to move to the tables. Jeremy Rand 2021-01-22 17:44:13 -0500
  • 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. Jeremy Rand 2021-01-22 14:41:05 -0500
  • 25765e6975 More rework from last night of the sound code to adopt new register writes. Jeremy Rand 2021-01-22 14:15:22 -0500
  • 0d681e3571 Move more sounds to the new modify and verify method of writing to the DOC. Jeremy Rand 2021-01-22 00:52:41 -0500
  • 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. Jeremy Rand 2021-01-22 00:34:07 -0500
  • cf85ec4cb3 Update the version information. Jeremy Rand 2021-01-20 22:33:09 -0500
  • 14cef25d9b Mark this build as 0.9.3 beta. I think this project is now feature complete for release. Jeremy Rand 2021-01-20 22:20:43 -0500
  • 2a52b21f8a Fix bug where the flea sometimes would appear before the second level actually started. Jeremy Rand 2021-01-20 22:14:59 -0500
  • 815758f3ff Rework the game logic to support one and two player games. Jeremy Rand 2021-01-20 00:06:32 -0500
  • 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. Jeremy Rand 2021-01-18 00:34:50 -0500
  • 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. Jeremy Rand 2021-01-18 00:18:31 -0500
  • 678a9ee104 Add code to keep track of two separate screens of mushrooms for player 1 and player 2. Jeremy Rand 2021-01-17 14:51:36 -0500
  • 230d1f344c Fix the message to print the right player number when there is a high score. Jeremy Rand 2021-01-14 23:18:52 -0500
  • 384a9ea233 Make more globals per player and index into them with the player number at game time. Jeremy Rand 2021-01-10 23:17:05 -0500
  • 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. Jeremy Rand 2021-01-06 23:27:51 -0500
  • 4700bd9cff Fix a bug where the collision and collisionAddr writes went to the wrong bank, leading to memory corruption and crashes. Jeremy Rand 2021-01-06 22:21:31 -0500
  • 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. Jeremy Rand 2021-01-05 22:43:00 -0500
  • 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. Jeremy Rand 2021-01-04 22:34:45 -0500
  • 50c924e1ff Look at two pixels wide when detecting collisions with a shot. I believe this solves the problem of shots passing through a centipede. Jeremy Rand 2021-01-03 23:57:21 -0500
  • a84d135819 Mark managing a local high score list as done. Jeremy Rand 2021-01-01 23:15:11 -0500
  • 3bb4572eb8 Prompt for the initials of the player when they get a high score. Jeremy Rand 2021-01-01 23:09:46 -0500
  • 767a8ba9ab Fix bug in how the old scores are pushed down. They must be copied backwards. Jeremy Rand 2020-12-31 15:03:08 -0500
  • 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. Jeremy Rand 2020-12-31 14:04:20 -0500
  • 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. Jeremy Rand 2020-12-30 23:10:22 -0500
  • 6947d8762c Add a way to swap left and right stereo channels and save the value in the settings. Jeremy Rand 2020-12-30 02:31:18 -0500
  • 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. Jeremy Rand 2020-12-30 00:01:58 -0500
  • 9228f247e5 Add code to load and save a settings file which will hold high scores and some other information. Jeremy Rand 2020-12-29 23:56:51 -0500
  • aee2b26fea Add some info about how to start a game and quit and make space for showing the high score list. Jeremy Rand 2020-12-29 14:15:25 -0500
  • 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. Jeremy Rand 2020-12-29 00:00:39 -0500
  • 24bce50a6e Update the todos and the aknowledgements. Jeremy Rand 2020-12-28 00:52:47 -0500
  • acfb7bec13 Add the new icon from fatdog. Jeremy Rand 2020-12-28 00:48:49 -0500
  • 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. Jeremy Rand 2020-12-26 15:26:19 -0500
  • 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. Jeremy Rand 2020-12-26 15:03:29 -0500
  • 3f0578d142 Fix the crashing bug when the previous game ends with the player colliding with the last remaining segment. Jeremy Rand 2020-12-26 00:31:54 -0500