Clock Signal — an Oric emulator for macOS and Linux

Comments, problems, suggestions about Oric emulators (Euphoric, Mess, Amoric, etc...) it's the right place to ask. And don't hesitate to give your tips and tricks that help using these emulations in the best possible way on your favorite operating system.
User avatar
iss
Squad Leader
Posts: 983
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Clock Signal — an Oric emulator for macOS and Linux

Post by iss » Mon Jan 27, 2020 6:08 pm

Here one more tip for SDL/Linux users - starting clksignal with:

Code: Select all

$ MESA_GL_VERSION_OVERRIDE=4.5 LIBGL_ALWAYS_SOFTWARE=1 ./clksignal <path_to_media_file>
should help on older machines which drivers doesn't support latest versions of OpenGL.
You can try how it runs with only first, only second or both environment variables preceding './clksignal'.
There can be small lags or performance issue but for testing purposes it worked for me!

ThomH
Flying Officer
Posts: 195
Joined: Thu Oct 13, 2016 9:55 pm

Re: Clock Signal — an Oric emulator for macOS and Linux

Post by ThomH » Mon Jan 27, 2020 7:45 pm

On that issue, I have either an OpenGL ES or a pure-software back-end planned for sometime. Specifically I want Raspberry Pi and/or Wasm compatibility. The sole current pixel renderer, which uses full-fat OpenGL, became something you plugged in shortly after Apple deprecated OpenGL as I will also need to adopt Metal for that platform at some point. But since I don't know Metal, that's somewhat far on the back-burner. It probably shouldn't be, because the profiling tools are fantastic, but there it is.

Actually, the blocker with OpenGL ES was that the Raspberry Pi supports only ES 2, which doesn't have bitwise operators. But now that I'm thinking about it, I may have engineered out that need by pure chance. I should probably check.

EDIT: bonus SDL top tip: as of commits made this weekend --speed=[number] should work if you like running your Oric at double speed, half speed, or any other speed. Though you're then stuck with it for the session. It's infrastructure for another feature, as yet incomplete, that I wanted to expose now in order to keep it current and tested.

ThomH
Flying Officer
Posts: 195
Joined: Thu Oct 13, 2016 9:55 pm

Re: Clock Signal — an Oric emulator for macOS and Linux

Post by ThomH » Thu Feb 13, 2020 6:04 am

A new release is out which:
  • resolves a potential undefined memory access at Oric startup, which I hope is responsible for the misbehaviour discussed above; and
  • adds multi-drive support for the Byte Drive 500.
I've also rejigged the way that certain dull timing issues work, but a notable outcome should be that the macOS version can no longer end up with permanently lost audio just because of a transient performance blip.

EDIT: to be explicit: Jasmin changes are yet to come though. Drive selection is still as if a soft switch, not based on D0, and correspondingly you can't select multiple drives simultaneously.

EDIT2: I also fixed a bug in which disk drives that weren't current 'active', whatever that might mean for a particular machine, would be frozen in time. I suspect with very limited consequences, but it could in theory screw up disk loading times — e.g. you've interleaved your sectors on this four-sector example disk as 0, 2, 1, 3, you want to read 0 and 1 and you'll process sector 0 while sector 2 passes by, but as it so happens you temporarily deselect the drive while processing. In real life it'll still rotate and you'll be nicely cued up for sector 1 when you reactivate it, but in the previously-faulty emulation you'll still be near the start of sector 2 and will need to wait for that to pass by after reactivating the drive.

I'm not aware of any concrete examples of that problem having an effect, but it did exist.

User avatar
iss
Squad Leader
Posts: 983
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Clock Signal — an Oric emulator for macOS and Linux

Post by iss » Fri Feb 14, 2020 11:08 pm

Well done and great progress!

About the BD500 support I found that clksignal fails to boot (and displays color garbage on screen) when you force to use Oric-1 v.1.0 ROM.
No problem with Atmos 1.1b ROM which is automagically selected by more 'votes' in the StaticAnalyser.cpp. Here is a quick fix:
Instead current code in BD500.cpp (lines 60..62) use this 'cases':

Code: Select all

		case 0x311:	disable_basic_rom_ = true;		break;
		case 0x313:	enable_overlay_ram_ = false;		break;
		case 0x314:	enable_overlay_ram_ = true;		break;
		case 0x317:	disable_basic_rom_ = false;		break;
This should fix the problem. I'll post more info in the 'Byte Drive 500' thread - unfortunately all guesses are based mainly on 'astrology' and 'trial-and-error'.

ThomH
Flying Officer
Posts: 195
Joined: Thu Oct 13, 2016 9:55 pm

Re: Clock Signal — an Oric emulator for macOS and Linux

Post by ThomH » Sat Feb 15, 2020 12:16 am

Thanks, I'll give it a shot when I get back to my development machine.

As well as that, and the Jasmin drive select thing, I think I've also found an issue in the relative volumes of my AY channels — the curve I'm modelling isn't quite right with the result that channels at the loud end are too far apart in volume and channels down at the quiet end are too close together. I'm going to look into that.

So another update may be forthcoming sooner rather than later.

Post Reply