Revision History: Release 1.36 01-30-2013 =========================================================== * Signed web start version can load ccc files via the bin interface. Release 1.35 01-26-2013 =========================================================== NOTE: OS X users should use the signed webstart version due to irratic keyboard emulation of the joystick. Safari will work when using one of the dual-key joystick modes. * Fix for Mac OS X button sizing on setup tables. * Removed broken full-screen access for Mac users. Release 1.34 03-06-2007 =========================================================== * Help URLs now work in web start version when running Java 6. Right-click on bold-faced program descriptions to get a popup help window. Double-click a URL to open. Run the web start version by typing the following at a command prompt (in Java 5 or Java 6): "javaws http://haplessgenius.com/mocha/mocha.jnlp" Release 1.33 03-03-2007 =========================================================== * Compressed program xml for performance and reliability. Release 1.32 06-14-2006 =========================================================== * Fixed potential serialization problem with snapshots. * It was possible to load a bin file before the emulation's memory was initialized. This would cause a crash. * Refactored code to use the newer Java api. Release 1.31 05-25-2006 =========================================================== * Fixed DAA (Decimal Adjust) opcode. The Carry flag was sometimes being calculated incorrectly causing floating point errors in Spectaculator. Many of the 6809 emulators on the Internet have this one wrong. Release 1.30 05-06-2006 =========================================================== * Complex artifacting optimization. Release 1.29 05-01-2006 =========================================================== * Changed take snapshot hotkey to F8. F9 now restores last saved snapshot. * Added serial version ids to serializable classes. This means future Mocha versions should be able to open snapshots from previous versions. Unfortunately, existing saved snapshots cannot be restored. * Change snapshot "Description" column to editable. Double- click the cell to add your own description. Release 1.28 04-27-2006 =========================================================== * Heavyweight popup link menu didn't handle double-clicks correctly. Changed behavior to ensure lightweight popup. * Minor visual fixes and look and feel optimizations. Release 1.27 04-26-2006 =========================================================== * Moved cassette, bin, and disk loading from a "local" button in the grid to individual buttons on each tab. Signed applet only. * Added ability to save a dsk image. Note: Any dsk image you open and change isn't changed on the physical drive - only in memory. Because the floppy emulation is bare bones, Mocha only operates on memory images. To update an existing image on your hard drive, just save the new image over the top of the old one. * Added a 'link' popup capability to the program tabs. Programs with help links are in bold. Right-click to bring up a popup menu. Double-click on a link to open that page in your browser. You may have to grant permission to open popups. Currently only Dungeons of Daggorath has additional links. More will be added as time permits. Applet only. Release 1.26 04-25-2006 =========================================================== * Fixed display bug on reboot/reset from a semigraphics mode. * Moved snapshot tab location. Release 1.25 04-20-2006 =========================================================== * Added tab for 'snapshots' (saved machine state). Press F9 while in emulation to save state. Review all saved states from the 'Snapshots' tab. The signed applet can save states to the local hard drive. The description column can be edited by clicking on the cell. * Automatic support for Napkin Look and Feel and Substance Look and Feel. Get the jar files from the respective web sites and either put them in your classpath or simply drop them in the jre/lib/ext directory. The next time you start Mocha, the look and feel will be listed on the config screen. Napkin is a hoot. Java 1.5 required. Release 1.24 04-15-2006 =========================================================== * Added advanced tab for finer control of emulation speed. * Fixed reboot speed bug. Release 1.23 03-22-2006 =========================================================== * Sound off by default to avoid surprises and bad drivers. * Sound toggle disabled if sound unavailable. Release 1.22 03-22-2006 =========================================================== * Changes to Help tab document. * Added an About tab with version and JVM information. Release 1.21 01-06-2006 =========================================================== * Replaced third party TableLayout with GridBagLayout. * Restored help text for full-screen exclusive mode. Release 1.20 12-30-2005 =========================================================== * Fixed bugs in full screen exclusive mode. Release 1.19 12-29-2005 =========================================================== * Improved layout manager. Code cleanup. Release 1.18 12-28-2005 =========================================================== * Fixed CoCoMax hires joystick positioning. Release 1.17: 12-26-2005 =========================================================== * Restored broken CoCoMax hires joystick emulation * Complex artifacting optimization - reduces CPU load by over ten percent on some games. Release 1.16: 12-23-2005 =========================================================== * Fixed various issues with undocked applet. * Added another complex-artifacting optimization. * Drawing the bounded-mouse currently doesn't work in full-screen exclusive mode...there seems to be a bug when using JFrame instead of Frame. Researching. Release 1.15: 12-21-2005 =========================================================== * When using mouse joystick and bounded-mouse is checked on the config screen, a bounding box is drawn when the user presses and drags with the right mouse button. This allows more accurate definition of the mouse sensitive area. See help for more information on bounded-mouse joystick emulation - it's extremely useful for games like Polaris and Arkanoid. Release 1.14: 12-17-2005 =========================================================== * Cartridge bank-switching fully implemented. Works for Mindroll which may be the only CoCo 2 game that actually switches banks - other 32K cartridges seem to keep the CoCo 2 code in the first bank and CoCo 3 code (or data) in bank two. * Fix for Mindroll which turned out to be a slight graphics optimization in general. Release 1.13: 12-16-2005 =========================================================== * Mocha now remembers the file path when opening a new cassette, bin or dsk image in the signed applet. * Various optimizations - inlining, etc. As always, the Java 1.1 version is probably faster on slower machines. Release 1.12: 12-15-2005 =========================================================== * "Fat binary" cartridges weren't correctly detecting a coco 2 versus a coco 3. * Muting sound wouldn't always work with "High Quality" sound selected. * Some support for bank-switching cartridges (enough to get arkanoid to run...more later)! * Fixed joystick for Arkanoid. Release 1.11: 12-13-2005 =========================================================== * Mouse rollover now works for JButtons in tables for look and feels that support this feature. Release 1.10: 12-11-2005 =========================================================== * Table sorting broken in 1.09. Fixed. Release 1.09: 12-08-2005 =========================================================== * Removed F8 key for dual joystick mode. Use "Dual Key L" and "Dual Key R" from the joystick menu instead. See help. * Internal JTable changes to accomodate future enhancements. * Minor rendering optimizations. * All Swing component access is now from the Event Dispatch Thread (JFileChooser, etc). Release 1.08: 12-01-2005 =========================================================== * Fixed fire button when using mouse for right joystick. Release 1.07: 11-29-2005 =========================================================== * Removed active rendering. See below. * Removed image array rendering for complex artifacting. See note below. * Reworked paint system so Mocha can now function entirely as a lightweight component. There were some optimizations and some minor trade-offs. For the applet, the Mocha screen remains a heavyweight component. NOTE: This release removes features no longer needed in Java 5. If you have performance issues, use the older Java 1.1 applet. Release 1.06: 11-22-2005 =========================================================== * Fixed border corruption problem on some games. Release 1.05: 11-22-2005 =========================================================== * Border and playfield are now a single component to avoid sync issues on some machines. There *may* be a performance hit. Use the Java 1.1 applet if your machine isn't fast enough. * Fixed issues with full-screen exclusive mode. Release 1.04: 11-12-2005 =========================================================== * Turning off sound didn't flush the sound buffer. * Changed component labeling and help. Release 1.03: 11-12-2005 =========================================================== * File dialog wasn't displaying directories in signed applet. * Canceling dsk file dialog opened a second dialog. Release 1.02: 11-11-2005 =========================================================== * Added sorting to tables. Click column header to sort. * Added layout manager that reduces font size if components don't fit horizontally. This allows better labeling on the main control bar. Release 1.01: 11-8-2005 =========================================================== * Tweaked GUI for GTK+ (Linux) and Macintosh Look and Feels. Unable to test on Mac but all components now fit on the main "control bar" using GTK+. Release 1.0: 11-8-2005 =========================================================== * Converted GUI to Swing. Please use the latest version of Java 5 for best results. Beta 9 Rev 3: 4-15-2005 =========================================================== * Rewrote keyboard PIA emulation. This should fix some incompatibilities with programs that didn't use BASICs key polling routines - Hitchhiker's Guide. Beta 9 Rev 2: 4-05-2005 =========================================================== * Fixed bug introduced in last revision that prevented mouse button from emulating the joystick fire button. Beta 9 Rev 1: 4-05-2005 =========================================================== * Added emulation of second joystick when using keyboard joystick emulation. Press F8 while in keyboard mode. The 'T', 'F', 'G', 'H' keys become the second joystick. The space bar becomes the fire key. Note these keys are then disabled for normal use. Pressing F8 again toggles the mode. Two player games and games that require two joysticks are now playable - Robotack works quite well. Beta 8 Rev 21: 12-03-2004 =========================================================== * Added "FILE" type to cassette menu. Beta 8 Rev 20: 11-28-2004 =========================================================== * Removed lightweight label class. No longer needed. * Changed button colors. * Renamed "Load" button to "Setup". * Added "State" label. Beta 8 Rev 19: 11-18-2004 =========================================================== * Test build. Beta 8 Rev 18: 11-15-2004 =========================================================== * Optimized border paint - sync problem probably still exists on slower computers. Fixed possible JDK 1.3 bug. Beta 8 Rev 18: 11-15-2004 =========================================================== * Attempt to fix possible synchronization problem with CoCo border. Beta 8 Rev 17: 11-01-2004 =========================================================== * Thanks to a more modern obfuscator (Proguard), I'm able to introduce advanced Java features and remain backward compatible with Java 1.1. Added mouse wheel support to the grids when running JDK 1.4 and above. Beta 8 Rev 16: 11-01-2004 =========================================================== * No code changes - now obfuscated with Proguard. Jar files are approximately 2K smaller. Please notify me if you experience any problems. Beta 8 Rev 15: 10-23-2004 =========================================================== * Increased font size and row height for load grids. Beta 8 Rev 14: 10-20-2004 =========================================================== * Grids are now resizable. Grab column separator and drag. Beta 8 Rev 13: 10-03-2004 =========================================================== * Converted load data to XML. This will make it easier to add program specific settings in the future. Used sjg, a small, 1.1 compatible XML parser by Christian Hvid. Beta 8 Rev 12: 07-23-2004 =========================================================== * Minor graphics optimization. Beta 8 Rev 11: 07-19-2004 =========================================================== * Multiple instances of Mocha running in the same JVM shared the large drawImage array. When closing one of the instances, the array was set to null even if the other instances were still using it. Fixed. Beta 8 Rev 10: 07-06-2004 =========================================================== * Complex artifacting reverted back to pre-revision 9. After testing by John Kowalski and others, it was determined not all CoCo's generated purple and green composite artifacts. Mocha will emulate these colors. Beta 8 Rev 9: 07-01-2004 =========================================================== * Fixed purple and green bug in complex artifacting. Thanks to John Kowalski for finding this one. Beta 8 Rev 8: 05-29-2004 =========================================================== * Removed workaround for JDK 1.5 Beta One sound problem. (JDK 1.5 Beta Two has been released with a fix). Beta 8 Rev 7: 03-27-2004 =========================================================== * Worked around sizing bug in grid class. Beta 8 Rev 6: 03-24-2004 =========================================================== * Added 'border + playfield' fullscreen mode. Beta 8 Rev 5: 03-21-2004 =========================================================== * The cassette/bin/disk tabs are now loaded in a separate thread at startup. The "Load" button will be disabled until all the data is loaded. Beta 8 Rev 4: 03-07-2004 =========================================================== * Protections against deadlock when using active rendering when not in full-screen mode. Beta 8 Rev 3: 02-29-2004 =========================================================== * Pressing F6 on a configuration that doesn't support sound could freeze the emulator. Beta 8 Rev 3: 02-29-2004 =========================================================== * Added function keys for control bar buttons. See the "Config" panel for details. * Added active/passive rendering toggle - F9. Passive is the default. Each method has advantages/disadvantages depending on the design of the game. Press F9 while your program is running to compare. Active is generally better for games with many moving sprites. Passive is probably the best choice for programs that do lots of full screen repaints. Beta 8 Rev 2: 02-28-2004 =========================================================== * Fixed broken docking bug introduced in Beta 8 Rev 1. * More robust full-screen code. Now chooses best mode based on what's available on specific hardware. Beta 8 Rev 1: 02-28-2004 =========================================================== * Added 512x384 full-screen playfield mode. This mode (if available) completely fills the screen with the CoCo screen minus the border and control bar. Set up your game before entering this mode (since the control bar is not accessible). Use F12 to toggle in and out of both full-screen modes. Signed applet/Java 1.4+ required. Beta 8: 02-27-2004 =========================================================== * Signed applet now supports full-screen exclusive mode! JDK 1.4 and up is required. When selected from the config tab, Mocha will display an 800x600x16, 70Hz screen (if supported by your hardware). This mode uses a single- threaded paint mechanism which is noticeably faster than the non-exclusive mode. Just unclick the checkbox to return to your normal display mode. This feature is experimental - use at your own risk. On Windows, this mode uses the DirectX full screen API. It's unknown how this works on other platforms. Please let me know about any problems. Beta 7 Rev 17: 02-26-2004 =========================================================== * Added support for compressed bin files. Beta 7 Rev 16: 02-25-2004 =========================================================== * Optimizations to 6809 and complex artifacting. Beta 7 Rev 15: 02-24-2004 =========================================================== * Fixed deadlock with quality audio and JDK 1.5 Beta. Beta 7 Rev 14: 02-23-2004 =========================================================== * Fixed obscure complex artifact rendering bug. Beta 7 Rev 13: 02-10-2004 =========================================================== * Added undocumented opcode for "Venturer" * Fixed long-standing keyboard mouse bug (Venturer/Shield). Opens the door for simultaneous left and right joystick emulation via keyboard. Useful? Beta 7 Rev 12: 02-10-2004 =========================================================== * More tweaks to audio. Beta 7 Rev 11: 02-08-2004 =========================================================== * The high-quality audio code added in Revision 10 is now an option on the "Config" screen. It is off by default. Beta 7 Rev 10: 02-08-2004 =========================================================== * Work with Java 1.5 has led to a smooth sound algorithm. Data is now always fed to the sound data line to prevent underruns (which caused the annoying clicks). Since this slows down the emulation, the regular sleep code is bypassed and the emulation is throttled down solely on the time it takes to write to the line. As a result, sound is much smoother and accurate. However, timing may be compromised depending on the speed of your CPU. I will probably add a switch to toggle between the old sound method and this improved version just in case. This is also experimental and may be removed depending on testing and feedback. Beta 7 Rev 9: 02-07-2004 =========================================================== * Another hack to fix problems with JDK 1.5 sound. Beta 7 Rev 8: 02-06-2004 =========================================================== * Fix for sound problem with JDK 1.5 Beta. Hopefully this problem will go away in the final release of Sun's 1.5. Currently, sound emulation is better on 1.3-1.4 series. Beta 7 Rev 7: 02-03-2004 =========================================================== * Added default extensions to the file dialogs when loading or saving files (signed applet only). * Applet now requests focus after closing file dialogs. The browser may not honor this request. Beta 7 Rev 6: 01-30-2004 =========================================================== * Fixed problem with Netscape 4.7x and possibly Mac OS 9. Beta 7 Rev 5: 01-30-2004 =========================================================== * Now supports compressed disk images for faster loading over Internet. Beta 7 Rev 4: 01-29-2004 =========================================================== * Fixed FDC status flag that prevented several Steve Bjork authored floppy-based games from loading. Beta 7 Rev 3: 01-28-2004 =========================================================== * Added support for local floppy disk images with signed applet. For now, the images are loaded into memory so updates do not affect the actual image on disk. The FDC emulation is still a work in progress. Only drive 0 is supported. * Mocha no longer reboots when selecting a new floppy disk image. Be careful not to swap a disk out from under a running program that performs disk I/O. * Added support for '\' key (use either shift+delete or the actual '\' on a PC keyboard). Beta 7 Rev 2: 01-26-2004 =========================================================== * Added undocumented 6809 RESET instruction. Beta 7 Rev 1: 01-25-2004 =========================================================== * Shift up arrow now works correctly. * Fixed thread deadlock when 6809 tries to reboot after encountering an invalid opcode. Beta 7: 01-25-2004 =========================================================== * Revised emulation speed to more accurately reflect a real CoCo (at least on my machines). * Removed CPU speed control. It didn't really work. * Revised Control bar. Beta 6 Rev 33: 01-24-2004 (Good luck, Opportunity) =========================================================== * Decreased size of sound buffer. Reduces sound latency. * Reset memory on power down. Beta 6 Rev 32: 01-24-2004 =========================================================== * Fixed high-memory bank graphics for CoCoMax. * Disabled "blit" images for 1.1 JVMs. Beta 6 Rev 31: 01-23-2004 =========================================================== * Mocha will reboot when it encounters illegal opcodes. * Added mouse support for CoCoMax. Beta 6 Rev 30: 01-22-2004 =========================================================== * Added ability to load local bin files from the signed applet. Mocha does some checks to try to validate the selected bin however it is possible to crash Mocha if a bad file is selected. * The user-defined mousebox area now displays the crosshair cursor in the border. Beta 6 Rev 29: 01-21-2004 =========================================================== * Made "blitter" complex artifacting an option. Should make complex artifacting faster on certain JVMs. However it uses a lot of memory and seems incompatible with older versions of Netscape. * Should now properly handle machines without a sound card. Beta 6 Rev 28: 01-20-2004 =========================================================== * Revision 27 still stuttered on slower PCs. Added an initialization screen in its place. Beta 6 Rev 27: 01-20-2004 =========================================================== * Blit image initialization moved to separate thread for faster startup. Beta 6 Rev 26: 01-20-2004 =========================================================== * Enhanced complex artifacting by expanding the size of the "blit" image. Complex artifacting is now as fast as simple artifacting on my PC. Startup time is slower because 16384 separate images have to be calculated in advance. Beta 6 Rev 25: 01-19-2004 =========================================================== * Emulated the Color COmputer border. Beta 6 Rev 24: 01-17-2004 =========================================================== * Instead of calculating complex artifacting pixel by pixel, Mocha now creates an array of pre-rendered Image objects that are quickly blitted to the screen. This results in a SUBSTANTIAL performance increase when using complex artifacting! Experiments with Java 1.4 VolatileImage may even increase performance in a future release. Beta 6 Rev 23: 01-16-2004 =========================================================== * Replaced graphics calculations with faster array lookups. * Added undock button to Config tab. Applet may run faster when separated from browser. Beta 6 Rev 22: 01-16-2004 =========================================================== * Added graphics optimization that was removed in testing of revision 20. Beta 6 Rev 21: 01-14-2004 =========================================================== * Auto-loading bin files now run in Extended BASIC 'mode'. This should fix incompatibilities with programs like Roman Checkers. When rebooting, the emulator will choose the ROM last selected. The downside is that auto-loading bins won't be able to access the disk emulation. It's my feeling these types of programs should be run from disk anyway. Also, if a game isn't programmed to specifically handle a reset, you may find yourself in Extended BASIC instead of Disk BASIC depending on circumstances. Beta 6 Rev 20: 01-13-2004 =========================================================== * Changed 64K banking method so graphics pages could be positioned above 0x8000 when in all ram mode. (Gold Runner, CyberTank). Beta 6 Rev 19: 01-13-2004 =========================================================== * Fixed synchronization issue introduced in rev 14 that could cause Mocha to crash on reset or power cycle. Beta 6 Rev 18: 01-12-2004 =========================================================== * Implemented coco's "mirrored" pia addresses. (Mr. Dig) * Slight optimization to 64k bank switching. Beta 6 Rev 17: 01-12-2004 =========================================================== * IRQ revisions - should be more accurate and slightly more efficient. Temple Of ROM works again. Beta 6 Rev 16: 01-10-2004 =========================================================== * Fixed synchronization issue introduced with revision 14 that prevented local tape access with signed applet. Beta 6 Rev 15: 01-10-2004 =========================================================== * Fixed bug when re-selecting mouse box emulation. * "Accept Changes" button disabled if no changes pending. Beta 6 Rev 14: 01-09-2004 =========================================================== * Found a way to remove synchronized code blocks except for page flipping games like Zaxxon. This should improve performance for many games. CPU usage may increase because the main thread and the paint thread now execute simultaneously. Beta 6 Rev 13: 01-09-2004 =========================================================== * Fixed interrupt bug with Cyrus chess. * Mouse joystick emulation would not "move" if the fire button was held down. Beta 6 Rev 12: 01-08-2004 =========================================================== * Changed background for orange text screens to dark brown. * Fixed pausing issues related to new mouse box joystick. * Increased scroll speed on grids. Beta 6 Rev 11: 01-07-2004 =========================================================== * Minor change to allow Tuts Tomb to work with keyboard joystick emulation - what took so long? * Minor cpu and 'mouse box' optimizations. Beta 6 Rev 10: 01-07-2004 (The Torsten Dittel Release) =========================================================== * Removed short-lived sliding keyboard joystick emulation. * Fixed several GUI issues. * Added "Mouse Box" Joystick emulation based on code and ideas from Torsten Dittel. If the box is checked on the "Config" tab, the user can then define the mouse- sensitive area of the screen by right-clicking on the game (which will pause) and dragging to create a virtual bounding box for the mouse. Releasing the mouse button unpauses the game. For some games like Breakout, if you match the bounding box to the game's mouse-sensitive area, the sprite will follow the mouse cursor exactly. Pretty neat. Without defining the mouse box manually, it remains the same 128x128 square in the center of the screen as the default joystick emulation but with more precise coordinates when the cursor leaves the box. Right now, unchecking the option resets the bounds to the default 128x128 square. It would be nice to draw the bounding rectangle when the user right-clicks and drags but I'm reluctant to slow down the paint code with additional checks. Time will tell. Thanks, Torsten. Beta 6 Rev 9: 01-07-2004 =========================================================== * Added alternate keyboard joystick emulation. If selected, the keyboard slides through the joystick values at a rate defined on the Config tab. This makes some games playable with the keyboard that aren't with the original keyboard joystick emulation - catepillar, clowns and balloons, etc. This is experimental and may be removed depending on its usefulness. Beta 6 Rev 8: 01-06-2004 =========================================================== * Mocha was basically ignoring the field sync interrupt flag and the CPU IRQ interrupt mask! As a result, interrupts were firing for games that specifically tried to turn them off. This should speed things up and make the emulation much more accurate. Beta 6 Rev 7: 01-03-2004 (Good luck, Spirit) =========================================================== * Tinkering with Donut Dilemma 64k reset revealed Mocha wasn't handling 64k mode correctly. Fixed! Beta 6 Rev 6: 01-03-2004 (Good luck, Spirit) =========================================================== * Changes to handle reset when in 64k mode. Temporary (?) fix for Donut Dilemma disk. Beta 6 Rev 5: 01-03-2004 =========================================================== * Added disk menu tab. Pressing the corresponding button mounts the disk in drive 0. For now, it's probably wise to always do a fresh boot into disk basic before mounting a new disk. Beta 6 Rev 4: 01-01-2004 =========================================================== * Scrapped most of redesign from revision 3. Sound and artifacting has returned to main control bar but are now multi-state buttons. Beta 6 Rev 3: 01-01-2004 =========================================================== * Minor memory optimization. * Moved artifacting and sound options to setup tab. This should improve the control bar on Macintosh OS X. Beta 6 Rev 2: 12-19-2003 =========================================================== * Graphics optimizations (not complex artifacting!) Beta 6 Rev 1: 12-17-2003 =========================================================== * Several optimizations including reduction in complex artifacting calculations. Beta 6: 12-11-2003 =========================================================== * Added Disk Basic support. Currently a single floppy in Drive 0 is supported - there are probably bugs. Booting into Disk Basic loads a public domain disk. Use "DIR", "LOAD", or "RUN" to access the programs. * Added ability to choose BASIC rom. See the Setup tab. Future configuration parameters will be added here. Beta 5 Rev 19: 10-23-2003 ============================================================ * Implemented lightweight buttons for consistent look and feel on different platforms (esp. Mac OS X). Beta 5 Rev 18: 10-04-2003 ============================================================ * Mocha can be put into 64k ram mode. (Downland works). * IRQ change to allow Bustout to work properly. Beta 5 Rev 17: 09-17-2003 ============================================================ * Fixed key polling issue with Neutroid. Beta 5 Rev 16: 09-16-2003 ============================================================ * Fixed obscure irq bug that prevented Neutroid from working. Let me know if something breaks! Beta 5 Rev 15: 09-15-2003 ============================================================ * Changed lowercase character background on Semigraphics screens from black to dark green. Beta 5 Rev 14: 09-14-2003 ============================================================ * Changed PIA behavior to fix Protector problem and improve single-bit sound behavior. Thanks to Tim Lindner. Beta 5 Rev 13: 09-14-2003 ============================================================ * Added single-bit sound. * Added 'unofficial' 6809 opcode for Protector. Beta 5 Rev 12: 09-11-2003 ============================================================ * Reduced number of array lookups with complex artifacting. Beta 5 Rev 11: 09-08-2003 ============================================================ * Improved sound emulation - closer in pitch and tempo. Beta 5 Rev 10: 09-04-2003 ============================================================ * Big code reduction to complex artifacting algorithms. Should be faster (you still need a hefty CPU however). Beta 5 Rev 9: 09-04-2003 ============================================================ * Added tabs to load window for future expansion. * Reverted to pre-revision 8 complex artifacting. Rev 8 was faster for page flipping games like Zaxxon but suffered slowdowns under certain conditions (video card, cpu). Beta 5 Rev 8: 08-20-2003 ============================================================ * Measurably increased performance of complex artifacting. Beta 5 Rev 7: 08-17-2003 ============================================================ * Fixed bug with indexed addressing. Revealed by Fourcube program. Beta 5 Rev 6: 08-13-2003 ============================================================ * Internal build. Beta 5 Rev 5: 08-13-2003 ============================================================ * More rendering optimizations. Beta 5 Rev 4: 08-11-2003 ============================================================ * Various CPU and graphics optimizations. Beta 5 Rev 3: 06-04-2003 ============================================================ * Implemented Color Computer font! Beta 5 Rev 2: 06-04-2003 ============================================================ * Minor rendering optimizations. * Numlock 0 now functions as a joystick button in keyboard mode. Mac OS9 wasn't recognizing the control key. Beta 5 Rev 1: 06-02-2003 ============================================================ * Fixed rare rendering bug for certain graphics modes. * Interrupts were being turned off when a bin file was loaded. Certain games that assume interrupts are on without checking now work - Cave Hunter & Berserk. Beta 5 Rev 0: 05-30-2003 ============================================================ * Added support for Semigraphic modes 8 and 12. Beta 4 Rev 15: 05-28-2003 ============================================================ * Added support for Semigraphics24 mode. I haven't found any SG24 software to really test this thoroughly - the one game I found won't run for other reasons. * Changed black character background to dark green. Beta 4 Rev 14: 05-22-2003 ============================================================ * Quite a number of optimizations to the 6809 emulation. Beta 4 Rev 13: 05-21-2003 ============================================================ * Switching between some bin files could cause the emulator to crash. Revised reset code to fix this problem. Beta 4 Rev 12: 05-20-2003 ============================================================ * Implemented grid for program selection. Currently only for unsigned applet. Beta 4 Rev 11: 05-19-2003 ============================================================ * Changed interrupt code. Megabug and Dungeons of Daggorath now work. Hopefully this won't break something else. * Applet failed on Netscape 4.x since sound code added. Fixed. Beta 4 Rev 10: 05-18-2003 ============================================================ * Fixed bug with 'keyboard joystick' fire button. Thanks, Torsten. * Added the ability to load and auto-exec bin files. * Due to a lack of 'real estate', moved cassette and bin drop-down lists to a new control bar. Press the 'Load' button to switch. Big plans in the works for a better GUI. Beta 4 Rev 9: 05-16-2003 ============================================================ * Added drop-down list with three sound modes. Sound off, sound on, and sound flush. Use sound flush for games that stall during sound synthesis (Zaxxon). This may lead to more clicks and pops but ensures playability. Beta 4 Rev 8: 05-16-2003 ============================================================ * Mouse cursor now changes to a crosshair when it's within the joystick sensitive area of the screen. * Sound on JDK 1.3 and above! * Stamped out another mode change bug. Beta 4 Rev 7: 05-15-2003 ============================================================ * Made mouse sensitive area of window smaller. This makes mouse-based joysticks easier to control. Beta 4 Rev 6: 05-14-2003 ============================================================ * Added dark green background in place of black where required. * Optimized painting code - how much further? Beta 4 Rev 5: 05-13-2003 ============================================================ * More work on problem with complex artifacting. It seems a few older video cards don't like it when Mocha resets the clipping rectangle...if you see 'tearing' this is probably the reason. * The green on black mode now works more like a real CoCo. Golf9 finally looks like it was intended with complex artifacting on. * Ironed some bugs out of the mode switching code. Beta 4 Rev 4: 05-13-2003 ============================================================ * The previous fix for the Buzzard Bait problem seems to cause major slowdowns in painting on some video cards - well, one that I know about. I found a workaround although I'm still investigating the issue. * Performance enhancements to complex artifacting routine. Beta 4 Rev 3: 05-12-2003 =========================================================== * Solved the pixel problem in Buzzard Bait. Complex artifacting should be faster. * Added green on black complex artifacting. Beta 4 Rev 2: 05-12-2003 =========================================================== * Added complex artifacting with the considerable assistance of John Kowalski. Because this may run slow on some machines, it's available as Red2/Blue2 in the artifact menu. Simple PMODE3 style artifacting is available as Red1/Blue1. Complex green on black artifacting is not yet available. Beta 4 Rev 1: 05-10-2003 =========================================================== * New artifacting code broken and inefficient - removed. * Speed button reverts to "CoCo" on reset. * Random artifact selection on reset doesn't happen if artifacting is turned off. Beta 4 Rev 0: 05-10-2003 =========================================================== * Properly implemented artifacting. No more eye strain! There's a lot going on in this mode - hopefully it won't change playability on slower machines. Beta 3 Rev 9: 05-09-2003 =========================================================== * Added cold and warm reset buttons. * Reset button randomly sets the artifacting. Beta 3 Rev 8: 05-08-2003 =========================================================== * Buzzard Bait revealed bug in key polling - fixed! * Added CPU speed toggle button. In user mode, use the up and down arrows to adjust speed. Fast mode no longer completely consumes the CPU. * Profiled Mocha and made optimizations to 6809 emulation. Beta 3 Rev 7: 05-07-2003 =========================================================== * Fixed mode switch bug. Donkey King is now playable! * Added keyboard joystick. Press joystick button until it turns into a 'K'. Then the left joystick becomes Numpad 8, Numpad 4, Numpad 5, and Numpad 6. This is a simple 4-way switch that actually works well for a large number of programs. Use the 'CTRL' key to fire. No right joystick yet. Beta 3 Rev 6: 05-06-2003 =========================================================== * Added support for CSAVE and CLOAD of local .cas files. If running as an application or a signed applet, select "--local--" from the cassette drop-down list. Imagine Mocha is connected to two different cassette players; one for "CSAVES" and one for "CLOADS". * Added 'E' button to signed version to eject the virtual cassettes. Beta 3 Rev 5: 05-05-2003 ============================================================ * Removed existing joysticks and added "joy" toggle button. The mouse controls the joystick and can be moved over the main screen to control movement. The "ctrl" key also serves as a joystick button - useful in preventing unwanted clicks on other controls. Use "L" for left joystick, "R" for right. * Keyboard polling needed to be slightly reworked for programs that don't use BASIC's polling routines. (ZAXXON) * Added support for high speed poke. Poking 65495 with a zero effectively doubles the emulated CPU speed. Beta 3 Rev 4: 05-04-2003 ============================================================ * Main screen requests focus after each use of the control panel. No more clicking to regain focus. * Added artifact drop-down list. Some programs utilized television artifacts to create additional colors in certain modes. * Graphic mode selection should be complete. The palette changing "screen saver" at the end of a 3D TTT now works. * Fixed page flipping problem. Zaxxon now works - at least the intro. Beta 3 Rev 3: 05-03-2003 ============================================================ * Optimized keyboard and graphic code. * Added virtual sound. The black bar at the bottom of the applet displays DAC levels. First step towards full sound support? * Adjusted .895mhz toggle. Now passes the timer test suggested by Robert Emery (over ten minutes on an Athlon XP 2400+). 5CLS:TIMER=0 10T=INT(TIMER/60):?@33,T:GOTO10 Accuracy of this routine depends on resolution of Java's System.currentTimeMillis() method. This varies depending on the JVM. Beta 3 Rev 2: 05-02-2003 ============================================================ * Revised interrupt code to simulate a CoCo interrupt more exactly. * CPU thread wouldn't die voluntarily when the applet was destroyed in pause mode. Probably not a big deal except on old Netscape browsers. * Fixed bug in 6809 emulation regarding RTI instruction. This fixed the occassional lockup after a "PLAY" command. * Apparently poking $FF22 with a value after setting the display mode changes the available palette. Implemented this for a few modes. * Joystick support broke somewhere along the line. Fixed. Beta 3 Rev 1: 04-30-2003 ============================================================ * Took another stab at approximating the CoCo's native speed. The results on slower systems remain to be seen. * Changed the reset from a cold reset to a warm reset. Refresh the browser for a cold restart. * Reworked the pause to use a wait/notify scheme. Killing and restarting the thread had some odd side effects. Beta 3 Rev 0: 04-30-2003 ============================================================ * Added preliminary joystick support. Open a joystick pad with the 'L' or 'R' button and move the mouse over it. * Added 'CPU Magic' checkbox. When unclicked, emulation runs at its fastest. Otherwise, pause 10 ms every X number of cycles. Beta 2 Rev 7: 04-29-2003 ============================================================ * Ripped out CPU throttle code until I can get a better handle on it. Does Java have sufficient timer resolution? * Temporarily added "CPU Threshold" field (how many 6809 cycles to execute before sleeping 10ms). * The virtual interrupt that drives the Timer and other functions is now much more accurate. Beta 2 Rev 6: 04-28-2003 ============================================================ * Fixed tricky bug in 6809 emulation that caused "PLAY" command to lock up the emulation. Beta 2 Rev 5: 04-27-2003 ============================================================ * Added PC keyboard mapping. Strangely difficult thanks to the way Java handles shifted keys. Beta 2 Rev 4: 04-26-2003 ============================================================ * Added all Graphics modes except the more obscure SEMIGRAPHICS. * Added Maze program. Requires joysticks to play (not implemented) but it's a good benchmark. Beta 2 Rev 3: 04-25-2003 ============================================================ * Fixed mode change bug. No more green General Patton. More modes to come. * Netscape 4.x only loads certain file extensions from jar files. Weird. Now runs in old Netscape! Beta 2 Rev 2: 04-24-2003 ============================================================ * Added support for graphics mode 6R (256x192, two color)! * Added a pause button. * Played with the throttle code. JVMs on some OSs may not have precise clock resolution. Beta 2 Rev 1: 04-23-2003 ============================================================ * Moved IRQ interrupt handling out of separate thread eliminating unnecessary synchronization. * Revised code so only screen memory is synchronized. * Added "CoCo Speed" checkbox. Turning this off runs emulation at maximum emulation speed. * Removed all "cas" files from the applet jar. * Added support for multiple program cassette files.