Minor announcement because I think MSX emulation is already well covered, but I've just released a new MSX 1 emulator for UNIX-like operating systems with SDL 2 and, separately, for macOS.
Potentially interesting features:
- built for cycle accuracy;
- a signals processing approach is taken where appropriate:
- audio is calculated internally at the full AY clock rate, then low-pass filtered down to whatever your computer can do. If it's a Mac, that definitely means at least 96Khz if you want it, but probably the usual 44.1 or 48;
- it also rejects the idea that an emulator needs to produce an entire frame of output and then magic that to the display in one blast, because that's not how CRTs work. Instead video appears as-it-comes, with phosphor decay. If you have a 144Hz gaming monitor, you can enjoy very low-latency 144Hz emulation;
- I'm also generally against emulators that try in themselves to be interesting as all you really want to do is use the emulated software, so there's no custom UI whatsoever. On the Mac it's an ordinary document-centric application: run as many MSXs at once as you care, do whatever you want with each window as to sizing and positioning, etc. The SDL version is intended to be launched by the command line in principle, but In practice is expected to be assigned a file association. Just double click your file and go.
Supported file formats are what I take to be the current standard bunch:
- CAS and TSX for tapes. Optionally with ROM-intercepting turbo loading, and even though TSX is the worst;
- DSK and DMK for disks. At their real speed only, I'm afraid. A full spinning platter and PLL is emulated;
- ROM for cartridges. Its autodection of MegaROMs is currently dreadful though, being wrong almost half the time. So good luck. SCC support is there, but it's a theoretical perfect SCC, so work to do.
The target audience is explicitly: people who want to use MSX software. I don't really care for options, or debugging features, or anything like that. I'm all about the user just being able to nominate the piece of media they want to run, and whatever is on it appearing as quickly as possible. No need for any prior knowledge of an MSX. At the minute the effect of that is little beyond that it'll automatically type whatever is correct to load a tape, but I hope it helps to frame the future development that will occur, if any: it'll all be in terms of making sure that additional software runs.
Ordinarily at this point I would make a bunch of boasts about the composite video emulation: if you opt to have your MSX connected via composite then the emulator calculates the real composite video stream, and then really decodes it, for the real effects of composite video. It's not me mucking about with artistic filters because that's what I think the composite video is, it's the real maths with the real flaws.
However, the particular timing of the TMS appears to have betrayed a precision problem somewhere in that stack. So it's doing all of that, but the result is a little lumpier than it should be. So it's not presently exposed on the Mac port. I'm working on it.
Also, your emulated MSX will always be a 60Hz model for now.
If anybody tries it, feedback would be lovely. Thanks!