Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
This release corrects:
- a timing miscalculation in the TMS9918 (and derivatives) which affected Master System After Burner;
- an error in Apple II card state management which could cause cards to acquire an extra clock cycle from the aether (and, in practice, thereby broke Disk II writing); and
- a more generic error in time counting in drives with a fixed rotation speed that crept in when variable-speed drive support was added for the benefit of the Macintosh and potentially affected all other emulated machines in fairly subtle ways.
- adds emulation of a 4mb Macintosh Plus, with its SCSI interface and corresponding support for hard disk images;
- adds optional fast-boot support for the Macintoshes, in which the emulator forces their boot-up memory test to be skipped;
- I've switched to a different model of Macintosh RAM timing: I now believe that for the models I emulate the proper behaviour is alternating four-cycle access and non-access windows while pixels are being output, and offering full bandwidth RAM access the rest of the time; and
- on a Mac host, ensures better routing of the command key into the emulator — it now won't trigger normal app-level host shortcuts while the mouse is captured. So e.g. command+q will be signalled to the emulated Macintosh, causing the application it is running to exit, rather than causing the emulator to exit.
On Macintosh accuracy:
- introduces video-motivated memory access delays, improving speed accuracy;
- makes the IWM's windowing logic much more like that described in its patent;
- reworks address decoding logic, yielding a small speed improvement and eliminating a small number of address space mapping errors; and
- improves 68000 behaviour re: interrupt acknowledgement, timing of interrupt decisions, and DIVS timing.
- introduces activity indicators for the Mac floppy drives;
- provides on-screen exposition as to how to release your mouse cursor; and
- following user feedback, the Cocoa version of Clock Signal now shows the File -> Open... dialogue at launch.
Corrects a bug that could cause a crash at startup on the Mac if starting a Macintosh via File -> Open... without having first provided a system ROM.
- corrects a misassumption about Macintosh video address latching, that led to graphical glitches in MacMan, Skyfox and elsewhere; and
- eliminates support for PlusToo-style BIN disk images, thereby resolving ambiguity over cartridge-image .bin files.
The latter was preventing use of a variety of ColecoVision and Atari 2600 titles.
- adds a preliminary emulation of the Macintosh 512ke;
- extends information provided for ROM identification in SDL;
- corrects a potential VIC-20 crash at startup;
- ensures the Swedish VIC-20 uses the correct ROM;
- corrects a potential crash at startup for the Apple II if Apple II ROMs have been supplied but Disk II ROMs are missing;
- improves Pravetz missing ROM announcements; and
- disables under sampling for any display type that is "precise" — RGB outputs in particular.
I'm planning to iterate on the Macintosh; it's very provisional. Amongst the known defects out of the gate:
- the 68000 executes DIVS too quickly and checks interrupt status at the wrong time;
- no costs accrue from memory contention;
- incomplete IWM/drive emulation currently prevents support for emulation of the original 128k Macintosh and the 512k Macintosh;
- insufficient user feedback is given when trying to insert new disks, or switch the system off.
So lots to work on.
- adopts an adaptive output quality aimed at improving the frame rate, especially on HiDPI(/'Retina') displays;
- adds temporary mouse hiding to the Mac port; and
- improves the emulation accuracy of AY IO ports.
Corrects a bug that could cause the Mac version to crash when starting a machine, and improves Nvidia compatibility.
(Note: an earlier version of this release did not include the Nvidia fixes)
- introduces a significant re-engineering of the video-handling pipeline in order to:
- remove luminance aliasing errors; this should be particularly obvious on systems like the NTSC Master System and MSX when smooth scrolling horizontally;
- add a monochrome composite path, now exploited by the Apple II; and
- make it absolutely impossible for machines to leave noise at the edges of the display;
- fixes two timing errors in the ColecoVision emulation: adds an M1 delay and makes the SN76489 access delay the proper length;
- introduces European and Japanese operation modes for the MSX (with the former being in compressed 50Hz PAL-o-vision, naturally — though to me it looks a lot nicer without the NTSC TMS rainbow effect);
- corrects a bug that would cause screenshots to be written incorrectly if not a multiple of 4 pixels wide;
- resolves timing issues in Apple II video generation that were causing a sync fault that would curve the first line of the display;
- resolves errors in MSX tape handling, specifically of the CAS file format and a bug according to which the fast tape routines could get confused and intercede during user program execution; and
- causes the the Electron to handle output-buffer-full events properly so that the display doesn't jump if processing falls behind.
The following are known regressions, relating to the same issue:
- the Oric is temporarily not using its original colour ROM for video output; and
- that's to do with the way that chroma sampling is phase aligned and my belief that what I was doing before for the Oric probably wasn't sufficiently rigorous, a side effect of which is also that chroma crawl isn't always presented correctly.
Corrects a bug that gave the ColecoVision, MSX and Master System a moderate chance of crashing upon startup.