Oricutron 1.0 (EDIT: Now 1.2)

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.
christian
Pilot Officer
Posts: 84
Joined: Sun Nov 24, 2013 9:58 pm

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by christian »

I just made a PR on Github with the patch to add the support of the WRITE TRACK command.

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

@christian: Thanks! This is really very useful. Your PR's are already merged and I'll update developer builds asap.

@ALL: Guys, please take a look at the short discussion we had about "Handling size-change of loaded DSK image file" started here. If you want to comment on github I opened new issue. But it's OK to share your opinions here too.

In short the problem occurs when you load a DSK image made with tap2dsk/old2mfm in Oricutron and you try to low-level format it with more tracks/sides than it contains ... now Oricutron crashes!
There is a very simple solution - always to extend the DSK to maximum, but this is somehow ugly...
Any ideas are welcome!

User avatar
Dbug
Site Admin
Posts: 3462
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Dbug »

Extending the DSK format would still mean that the emulator would crash when starting from a legacy version of DSK files.

Would it not make more sense to have Oricutron loads into memory the entire DSK, in some flexible structure that can be extended, etc... and save a full newly updated file when write operations are done (say, after "n" seconds) or before quitting or swapping floppies?

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

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by ThomH »

If you'll forgive the interlocutor from a different emulator entirely, I added a quick extra comment to the write track pull request. It was merged 23 days ago, so I thought I'd better also mention it here: if I've understood the code correctly then I think it'll generate CRCs incorrectly in FM mode. Which, admittedly, is probably not be something you care about too much since the Oric file format can't accurately store FM data, and I think that as a result Oricutron can't accurately model FM data (?), but there it is.

Also, for when it arises, I think there's a bug in my emulator anyway but I'm not doing [/trying to do] anything smarter than zero-filling the DSK file where there's an unformatted track. You could get that if someone loaded an 80-track DSK file and then formatted track 82. Zero filled isn't really the same as unformatted, but you have to fill space in the file somehow.

EDIT: and this is completely picky stuff, to which a rational person might say: emulating that is a detriment as complexity outweighs benefit, but I think your read track also doesn't reproduce the spurious C2 sync issue.

If you map the nine-bit pattern 000101001 into MFM, you get x010 1001 0001 0010 01. The C2 sync pattern is 0101 0010 0010 0100. So the valid input stream 000101001, with all clock bits, includes the C2 sync pattern. In read track mode, when the WD has its logic to spot sync patterns permanently enabled, it will therefore often suddenly produce a spurious C2 and then a bunch of mis-framed nonsense rather than the real data.

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Let's start the new year with something new:
Oricutron for developers updated: 2020-01-02.

User avatar
Dbug
Site Admin
Posts: 3462
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Dbug »

I tried the version yesterday, what are exactly the differences between the oricutron and oricutron_sdl2 executables?
I did not notice any obvious difference when testing them, but when I tried to save to AVI, the SDL2 version had some weird background noise in the movie file while the other was clean.

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Normally Oricutron uses SDL ver.:1.2, but for porting it to Android we needed to use SDL ver.:2.0 as result there are 2 binaries respectively for both SDL versions. I'll check what can be the source of the difference between both audio captures.

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Oricutron for developers updated: 2020-05-15.
20200515.png
20200515.png (39.45 KiB) Viewed 1725 times
What's new:

Code: Select all

* Added Byte Drive BD-500 support
* Added possibility to load more images from command line
* Fixed memory leaks and improvements in disk support
* Added monitor command 'fr' - fr <addr> <file> - Read BIN file to mem
* Changed monitor command 'df' to 'fd' for better consistency
* Changed monitor command 'wm' to 'fw' for better consistency
* Added new 'dcadjust' option in .cfg file - toggles on/off audio DC adjustment
* Added German translation of 'ReadMe.txt' - 'ReadMe-LiesMich_DE.txt'
To test Byte Drive BD-500 use 'Hardware options' to select it and load 'bddos.dsk' image from disks/ sub-folder.
To improve version handling I set tag 'V1_2_1' for last commit and now the window title contains the tag (in more human acceptable format) and the build date. This versioning will continue in next releases.

PS. Just side note: on every Oricutron update I merge the changes to OricExos emulator too.

User avatar
Dbug
Site Admin
Posts: 3462
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Dbug »

Ok, I will have to test this version (and ideally would be nice if a couple other people could try it) to see if it's a worthy update for the one in the OSDK, and if yes, I can publish a new version of the OSDK with that one :)

User avatar
ibisum
Wing Commander
Posts: 1359
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by ibisum »

Awesome, will put this through the paces over the next week or so .. would be interested to see if I can match the build - did you tag this release by any chance, so I can pull that specific tag for a rebuild locally?

EDIT: n/m I see you did:

* a19fa8f 2020-05-15 | BD-500 support (HEAD -> master, tag: V1_2_1, origin/master, origin/HEAD) [iss]

User avatar
Chema
Game master
Posts: 2724
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Chema »

I'd hate to become irritating, but with this version the keyboard is still somewhat screwed up. There is no keymap folder, no example. It is not following my local keymap, and it is not following the Oric's layout either.

SHIFT + numbers follow the Oric layout, yes, but next to the '0' there should be '-' '=' '\' and (with SHIFT) 'Pound' '+' '|'.

I get only response from the key right to the 0, the single quote ' and with SHIFT the double quote (in my keyboard this should be '?'). I get no responses from the keys to the right of the P or L, and so on. I did not find a way to produce ';'.

It gets worse. I tried to use the keyboard->new mapping menu and the version compiled with sdl statically freezed a second and closed. I tried keyboad -> show keyboard, and it did the same. The version without static sdl freezed but did not close.

Still problems when changing from soft redering to opengl. I tried changing to soft and it freezed for over 4-5 seconds. Then it seemed to be ok. I tried to change back to opengl and it closed. Then I tried again and it closed every time I tried to change it.

It seems to work on the version that does not include sdl, though.

I am also confused with the aspect-ratio thing. I have 3 different aspects (all with the 50Hz configuration... I think: it displays '50Hz/60Hz aspect ratio' as selected - checked):

Software redering (Normal mode:)
2020-05-16.png
2020-05-16.png (8.83 KiB) Viewed 1695 times
OpenGL:
2020-05-16 (1).png
2020-05-16 (1).png (17.4 KiB) Viewed 1695 times
OpenGL+ Horizontal strecth
2020-05-16 (2).png
2020-05-16 (2).png (12.38 KiB) Viewed 1695 times
All of this tested with the 64 bit version under Windows 10.

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Chema wrote:
Sat May 16, 2020 12:50 pm
I'd hate to become irritating...
Absolutely no problem. :) Any feedback and test are very valuable and helpful to make things work as they are supposed be!
And besides the issues you have there are lot more bugs related (for instance) to SDL video which wait to be solved...

In reverse order:
Chema wrote:
Sat May 16, 2020 12:50 pm
I am also confused with the aspect-ratio thing. I have 3 different aspects (all with the 50Hz configuration... I think: it displays '50Hz/60Hz aspect ratio' as selected - checked):
In my opinion everything is working as it should. We have 2 renders (you know).
The software render is very simple every Oric pixel is drawn as 2x2 screen pixels square and that's what we get.
The OpenGL render uses hardware to scale the 240x224 (actually it includes the black bands too) to different screen rectangles depending on the selected 50/60Hz video mode, so we have 'circle as circle' (and a taller image) in 60Hz mode vs. 'circle as oval' in 50Hz mode - this is exactly what I see on my LCD TV's with real Oric. Additionally there is 'OpenGL+ Horizontal stretch' option which simply scales the 240x224 rectangle to the whole window - without any pretensions to be correct in any way, just makes the image to look fat :).
If we take the 'official' 1.2 release as base, compared to dev-releases the only difference is in the Oricutrn.cfg file where I changed the default 'Software' render to 'OpenGL' - because IMO OpenGL looks closer to the real thing (..and yes, I like it more :)).
Chema wrote:
Sat May 16, 2020 12:50 pm
There is no keymap folder, no example. It is not following my local keymap, and it is not following the Oric's layout either.
I never used this feature to have 'keymap' and I really don't know much about it. I'm more worried about the freezes and black screens which appear when playing with 'Keyboard' options from pop-up menu!
I've tested with 3 laptops and 2 desktops (all Win10/64) + 2 Linux desktops (Ubuntu/Fedora) + 1 macMini (macOS 10.15) and I always get the right character! The displayed symbol in Oricutron is always the same which I pressed on the keyboard!
keys.jpg
keys.jpg (1.17 MiB) Viewed 1686 times
Here are the circled keys which I pressed Shifted and Not-shifted (there is a '4' more by my mistake ;)) how they appear on screen.
I just wonder where can be actually the problem? Do you have any localization software which can affect the default keyboard codes being generated?

User avatar
Chema
Game master
Posts: 2724
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Chema »

I do have a Spanish keyboard. Okay I just re-tested: the one having problems is the one which statically links sdk (oricutron-sdl.exe). The other version is working as 1.2, mimicking the Oric keyboard and your layout. I would've sworn it did not work before, but alas, it is behaving now.

Sorry for misleading you here, but please test the oricutron-sdl.exe... Maybe you won't have problems either, as your layout is the same as the Oric's. I have problems (not outputting anything) when using keys which are at different locations in the Spanish keyboards.

This version (not oricutron-sdl.exe, but oricutron.exe) also has no trouble when changing between opengl and software rendering modes, so it is okay.

I just think it would be great to have an on/off switch to use the default keyboard's layout. I understand that it must be quite tricky to make a conversion between character pressed and the Oric keyboard emulation (some codes such as '#' are combinations of SHIFT+Key), but as it seems some kind of keymap is already supported...

I now nothing about SDL, but if it is similar to other libraries, perhaps there is an option to either use the pressed key code, tied to key positions in the keyboard, or character codes, which represent the symbols and use the local keymap in the OS.

I am aware of all the aspect ratio variations, but I still don't get the opengl+stretch option. It is not seen in any real hardware, is it? Any reason to even have it in the menu?

Still on the request side, is there any reason why the menu and debugger screens are no more of blue background?. When in the debugger text appears with blue background, creating a strange effect. I also loved the blue, but that is me :)

User avatar
iss
Wing Commander
Posts: 1129
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Well, the root of the keyboard problem is the localization, maybe I'll be able to reproduce it - noted and hopefully will be fixed.

About the executables 'oricutron.exe' uses SDL ver.1.2.x, and 'oricutron-sdl2.exe' - SDL 2.0.x, so it's expected to have differences and this is the idea to continue distributing both. I think it will be easier to track bugs and fix them. For example with SDL 1.2 if the window was minimized then when it's restored the surface is lost and we have 'pitch black' rectangle - with SDL 2.0 it simply works.

The 'opengl+stretch' option is from the very beginning - I don't use it and don't see its purpose ... but it's done - let it live :).

About the background colors: I think the debugger window is always white font on blue background. Only the F1 menu appears in different color which is different per selected machine i.e. Atmos is black, Oric-1 is lightgray, Pravetz is green-ish, Telestrat is black. This is a feature and my very personal opinion is that it's (sorry!) ugly, I love the blue too. I'll make it optional and set-able from the CFG file :).

Post Reply