Hap pointed me to this old thread.
Well that's even more excellent information. Plucking at random, I am definitely not reverting to the final processed sprite after the fifth sprite bit is cleared. So further work will be required.
Hi @TomH, I've been playing around with CLK not just for MSX emulation lately (it's the only decent CPC emulator that I can find that runs natively on my Mac without having to use Wine!! So, thanks a lot for creating it!!!), and I have a quick question: is it possible to change the emulation speed once CLK is running with some key combination? Maybe i'm just being clumsy, but I couldn't find any info about command-line arguments or key bindings of the emulator on the GitHub page
Sadly not at the minute; it's 100% speed only. There is a vague technical reason for this related to the way that audio is processed but it doesn't amount to much more than that I simply haven't made the effort yet. On the plus side, it will be necessary to support a variable running rate to fit in with my plan to allow mild time warping for sync matching with machines that don't quite output at exactly the same rate as your machine. So it can turn up one day.
Otherwise, I haven't really been posting here because improvements have been overwhelmingly incremental but since I last announced a release:
- a bug in TSX parsing has been corrected such that the contents of http://tsx.eslamejor.com/ now overwhelmingly work;
- Mac users can see drive activity status indicators if your MSX has a disk drive;
- Mac users can also just launch an MSX without having to provide a piece of media to load; and
- various slightly-obscure AY input/output errors have been fixed.
Releases are always available in the usual place.
Already committed to the repository for the next release:
- a bug fix for sprite drawing in which 8x8 sprites could end up with an extra 8px of nonsense to their right; and
- joystick support — with the SDL version you can use a real physical joystick, but in Mac world it's currently only via the keyboard.
One or more of those SDL/Mac feature disparities may also be corrected. I'll see how things go. The SDL port will get drive activity indicators because that's already written even though not yet merged, but whether in the near future it also gains the ability to launch a machine without media and whether I implement physical joystick support for the Mac I haven't yet decided.
Re: the AY, the specific issues were incorrect handling of the probably-never-happens scenario of a programmer setting one of the ports as output despite it being wired for input and then reading from it as though it were input, and similarly attempting to read from the main data bus while the AY is configured to expect a write or not to expect anything. It's hard to imagine either being much of a problem with real software with the way the MSX is connected, so I don't think the fix will noticeably affect anything.
No problem! I just wanted to load tapes a bit faster, but I can wait, not a big deal
Thanks a lot for all the effort into this emulator, btw!! I'll be monitoring this thread for future releases
Hopefully that's more about the CPC than the MSX; on the MSX the rule is that, if the user has opted in, calls to TAPIN and TAPION are accelerated. So in effect, anything that uses the BIOS to load should load nearly instantly. Which means all CASs in their entirety, and anywhere between none and all of TSXs and CSWs (wholly dependent on the actual data on the tape, completely independent of encoding).
The CPC is the only supported platform without any sort of analogue of that, which is something I should fix. I think the CPC uses a Spectrum-compatible tape encoding (?), which is what a large number of TSXs use when not calling into the BIOS, so actually it'd potentially be a multiplatform benefit. I'd just need to figure out the half that recognises what the MSX code is trying to do; I'm hoping there'll be a fairly easy way to fingerprint these things, as probably it's just a bunch of repurposings of the same routines, but have yet to verify that hope in any capacity.
That feature would be great. But no rush at all!
I am playing around with developing somethings for both MSX and CPC, and I found that while the MSX community has a lot of unix software available, the CPC is a very Windows-centric community, and it's hard to get to run things on Mac/Linux (the other CPC emulators that run on Mac like Arnold, xcpc or JavaCPC are not very stable...). So, in addition to the neat accurate CRT rendering, etc. CLK is a great contribution there!!!
Minor follow-up; a new release is now out with:
- a fix for a TMS sprite bug whereby some games could end up with 8 pixels of garbage next to an 8px-wide sprite; and
- joystick support. On the SDL build that means real, physical joysticks will be visible as connected joysticks within the emulated MSX. On the macOS version is means that and there's also an optional keyboard-as-joystick mode.
Here as always.
Minor update, because I don't think anybody is offended by these even if they're not necessarily especially interested:
- an over-composition error was significantly skewing the palette towards bright colours. That's been fixed, so my palette is now much closer to other emulators;
- an implementation error that limited pasting of small strings has been fixed; and
- it's now slightly more obvious how you change media in a running machine now, at least if you're a Mac user.
So if you tried the emulator and noted any of those errors, you might consider giving it another go.
---
Fuller technical chatter, to try to provide some content of interest regardless of your interest in the emulator:
Re: over-composition, of course mine is not a frame-minded emulator. The screen is treated as a 2d drawing surface, onto which the raster gun is (nearly) continuously painting, and snapshots are taken of that surface each time your computer's monitor hits vertical retrace. Hence 144 different frames a second if you have a 144Hz monitor and the correlated drop in latency, etc. The issue affecting the MSX was effectively that I had my simulated electron gun firing much too brightly. The MSX itself was producing the right signal, even when encoding composite video, right the way up to it actually going onto screen and then the brightness was being amped up by about 25%. Fixed.
I keep looking at the MSX 2 but haven't yet formed a strong opinion.
It’d be nice to see MSX2(+) support if you ask me .
I like how you take a different approach from other emulators. Plus openMSX can use some competition .