Commit Graph

88 Commits

Author SHA1 Message Date
Jeremy Rand 836d4fbc21 Update the readme. 2021-07-26 23:29:07 -04:00
Jeremy Rand 78d451657e Issue release 2.7. 2021-03-17 22:48:01 -04:00
Jeremy Rand b477317279 Some fixes to the save option upgrade code and mark this as a beta build. 2021-03-15 00:37:47 -04:00
Jeremy Rand 8bb8f4511b Do not set the high bit of the read character to indicate that the apple key(s) are held down if the high bit is already set. 2021-03-12 00:38:54 -05:00
Jeremy Rand 3861bfc00c Add the option to change the keys used to navigate the gem board. 2021-03-12 00:14:05 -05:00
Jeremy Rand ab895a6d88 Update README to reflect the new release. 2020-05-28 22:37:56 -04:00
Jeremy Rand 8a7c234e61 Implement a series of fixes for Mockingboard speech support based on feedback from TomCh. Much of this is actually changed merged from the Mockingboard detection code from TotalReplay (also feedback from TomCh). Bump the version number to 2.6 to prepare for the next release. 2020-05-28 22:37:14 -04:00
Jeremy Rand bc1cbc975c Fix an off by one error found by TomCh in the speech code which lead to the beginning of the next speech phrase to be played. This is why "excellent" sounded more like "excellent-ay". Worse, it would lead to the 5 bytes after the phrase "incredible" to be treated like speech data and who knows what that did.
Also, bump the version number to 2.6.a1 in preparation for a 2.6 release with these fixes.
2020-05-04 23:07:02 -04:00
Jeremy Rand e21c7375f6 Ensure that the game hint is set correctly even after loading a new level. The key is to check for an "end of game" condition at the top of the main game loop. Unless there is a bug in the "next level" code, it will never been the end of the game when the next level starts. But it is the end of game check which also sets the hint square which is the first square it can find with a valid move. 2020-05-03 23:04:25 -04:00
Jeremy Rand 1d5eb0a636 Bump the version up to 2.5. 2020-03-30 23:35:32 -04:00
Jeremy Rand d8ec0349c5 Add a comment about the problems detecting the //e card from get_ostype(). 2020-03-24 23:54:14 -04:00
Jeremy Rand 0a5c8b5fe3 Detection of the //e card is buggy in the cc65 runtime so implement my own detection of this HW to workaround the buggy double lores implementation. 2020-03-24 02:06:45 -04:00
Jeremy Rand 49ccd2bfdc Add code to handle buggy double lores HW on the Apple //e card for the Mac. Apparently it doesn't handle the colour shifting that is required in the aux bank on other Apple // HW. 2020-03-23 23:28:28 -04:00
Jeremy Rand d3d97db1f6 Only show the "enable/disable mouse" option if a mouse is actually present. Force the mouse option on when the options file is upgraded to the latest version. Allow mouse and joystick controls to co-exist. In past versions, the mouse interrupts messed up the joystick measurements but those are now done with interrupts disabled so that isn't a problem now. With this change, the mouse behaves like the mockingboard - it is auto-detected and just used but can be disabled if the user does not want it enabled even though present on the system.
Also bump the version number to 2.4.
2020-03-09 22:59:38 -04:00
Jeremy Rand 20ad7dda1c Add code from Total Replay to detect the sound chip automatically on startup. This then leads to a complete rethinking about how to save/load the options for the game. It used to ask what slot the mockingboard was in (if any) and whether it had a speech chip. Now, the game should just know this information. So, I turned the first boolean in the save file into an options file version byte and bumped it to "2". The boolean was always true and was kind of a very simple "magic number" to say that the contents was valid. Now it is a version number of the contents. The slot number and boolean for the speech chip is are now each turned into booleans - one to say whether to enable a mockingboard if found and the other to enable the speech chip if found.
This means there are three booleans in the options related to sound now.  The first one enables/disables sound entirely and is default on.  The second is only relevant if the sound is enabled and says "use a mockingboard if present".  Again this is true by default.  Finally, the this says "use a speech chip on the mockingboard if present" and is only relevant if the mockingboard is also enabled.

So, the basic approach now is to default the "best" sound options and auto-detect the sound HW at launch.  The user can then use the options to downgrade their sound all the way to basic Apple // sound or turn off the sound entirely.
2020-03-04 22:23:09 -05:00
Jeremy Rand 72fc265e5a Fix the mouse interrupt based VBL for the //c and //c+. This used to work under cc65 v2.13.3 but when I moved the codebase to cc65 v2.17, the mouse driver interrupt handler changed. It used to call the "show" callback routine when handling the interrupt. In v2.17, it stopped calling "show" from the interrupt handler and instead called a new "draw" callback. Because the "show" callback was not being called, the game would wait forever for a VBL interval on the //c and //c+. This fixes the problem by setting the "draw" hook to my VBL callback on the //c and //c+.
Bumped the version number to v2.3.
2020-02-26 22:36:42 -05:00
Jeremy Rand 2c981b6f1d Do not turn on joystick control by default on first launch. Keyboard and mouse are the primary interfaces and joystick is just an option which can be turned on (but is a bit weird so not on by default). 2020-02-20 22:16:03 -05:00
Jeremy Rand 7955b7a0ec And bump the version number. 2020-01-30 22:57:32 -05:00
Jeremy Rand 7b7847d391 Ported some mockingboard detection code from Total Replay into the startup. If there are no game options saved, then it tries to detect a Mockingboard and use it automatically. No detection for a speech chip yet (although that may be coming and if so, I will port that in also). 2020-01-30 22:56:47 -05:00
Jeremy Rand c67874ca74 Total Replay would like a jump to $100 when the game quits. This change should do that. The version number also got bumped too 2.2a2. 2020-01-29 22:02:39 -05:00
Jeremy Rand 879030f4ff Use uppercase for the file names because that works better with Total Replay. Fix a problem where HISCR is left on after switching to mixed mode. Fix bugs with formatting of the text when saving the game, prompting for the next level and notifying that the end of the game has been reached in mixed text mode. 2020-01-29 00:31:19 -05:00
Jeremy Rand 74e22c1854 Update the README file. 2020-01-24 21:53:59 -05:00
Jeremy Rand e8783b019b Add a build option in the Makefile for a Total Reply build. For a TR build, we have a special quit handler which jumps to a special vector. Also in a TR build, ".tr" is appended to the version number to make it clear it is a TR build. Bump the version number up to 2.1. 2020-01-24 21:46:51 -05:00
Jeremy Rand 34e320a605 Make the project clean of 65c02 instructions. This should let this run on an unenhanced //e. 2020-01-22 23:31:42 -05:00
Jeremy Rand d0daa023d8 Update the project template again to include the output products. 2019-08-08 23:50:21 -04:00
Jeremy Rand 140f55a213 Fix minor bug from the build engine. 2019-08-08 22:58:25 -04:00
Jeremy Rand 0db89da22c Update to the latest build engine release. 2019-08-07 22:58:54 -04:00
Jeremy Rand 6d4ae62b77 Fix problems related to moving to cc65 2.17. 2018-10-21 14:13:58 -04:00
Jeremy Rand f619aa0313 Add support for cc65 2.17. 2018-10-17 23:13:12 -04:00
Jeremy Rand 87819667be Update the build engine to support capturing build errors in Xcode itself. 2018-06-25 22:58:40 -04:00
Jeremy Rand a608ddbe8f Remove build files which snuck in to git. 2018-06-19 23:10:21 -04:00
Jeremy Rand 7d75ae8dcc Upgrade to the new build engine. 2018-06-19 23:07:49 -04:00
Jeremy Rand a6750230da Update the readme file. 2016-12-24 01:54:17 -05:00
Jeremy Rand 47c563e815 Update the readme file. 2016-12-24 01:53:35 -05:00
Jeremy Rand 1f24457a8a Say "good", "excellent" and "incredible" on long chain reactions. 2016-12-24 01:49:20 -05:00
Jeremy Rand 3d84abcc16 Move the the loader system type because the code is getting too big to accommodate anything else... 2016-12-23 23:09:42 -05:00
Jeremy Rand 9bca2bc307 Modify options to allow enabling mockingboard and speech chip support. Hook up mockingboard and speech support. 2016-12-23 22:51:45 -05:00
Jeremy Rand c9a1c8c9f1 Add speech binary messages to the sound file. 2016-12-23 01:05:54 -05:00
Jeremy Rand 78986f77a1 Add mockingboard sounds. 2016-12-22 00:39:09 -05:00
Jeremy Rand 36ed166670 Add mockingboard library and start reworking the sound code to prepare to integrate it. 2016-12-20 00:05:41 -05:00
Jeremy Rand 7e7d34a878 Update the readme file to point to the latest release. 2016-09-12 22:28:54 -04:00
Jeremy Rand f6dba77ec2 Bump the version number to 1.2. 2016-09-12 22:22:41 -04:00
Jeremy Rand 7557249a58 Back to just a simple .system file and not use a loader. 2016-09-07 17:04:39 -04:00
Jeremy Rand fc5399e329 Disable interrupts while reading from the joystick. By doing this, we can have the mouse and joystick drivers both enabled at the same time. Do not disable the mouse driver when mouse input is disabled. Register a "show" callback with the mouse driver and use that as a way to be notified of a VBL interval on the //c. 2016-09-06 22:55:05 -04:00
Jeremy Rand 1c173b90b3 Bump beta build number. Inline and unroll the draw loop for gem drop to make drawing faster. Fix a problem with detecting matches on gem drop where we might miss some matches. 2016-09-01 00:05:31 -04:00
Jeremy Rand a07d884dd3 More adjustments and fixes to the drop animation. 2016-08-31 23:30:00 -04:00
Jeremy Rand 42279475fa Fix some bugs related to drawing partially shown gems in the new draw routines. Improve the logic in the drop animation code to fix some problems with overlapping gems. 2016-08-29 00:58:37 -04:00
Jeremy Rand 3fd36836d7 Draw gems at every X pixel, not just every other one. 2016-08-26 01:07:57 -04:00
Jeremy Rand 82f4d7a1e5 Draw gems at all vertical pixels, not just every other one. Clean up magic numbers in the animation code. 2016-08-26 00:05:43 -04:00
Jeremy Rand 563258d77a More code simplification thanks to the more generalized assembly draw code. 2016-08-25 23:35:30 -04:00