JOric

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
Dbug
Site Admin
Posts: 5024
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

Sound disable in turbo mode is fine, it's mostly that some Oric games have animations that cannot be skipped (like the scrolling logo in Magnetix, the intro in the Last Warrior, etc...) and generally my solution is to F6 my way out of them in Oricutron :D

Incremental search works very well, thanks, makes it so much easier to find a game!
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

Dbug wrote: Wed Mar 19, 2025 8:22 am Sound disable in turbo mode is fine, it's mostly that some Oric games have animations that cannot be skipped (like the scrolling logo in Magnetix, the intro in the Last Warrior, etc...) and generally my solution is to F6 my way out of them in Oricutron :D
I can see that as being a very useful feature. What I might do as a first step is implement the same F6 support for turbo mode, rather than add a new icon on screen. Then I might follow up with the icon later on. I'll let you know when the first step is available.
User avatar
maximus
Flying Officer
Posts: 205
Joined: Thu Feb 23, 2006 7:45 pm
Location: Nimes, France

Re: JOric

Post by maximus »

hi dreamseal

since 2018 you made this stuning tool, a web emulator. :shock:

Not easy in english, I cannot read 15 pages of this forum :oops:

Is there a readme text or a manual to use it correctly ?

For exemple:
I tried the game "Teknis", not available in your panel. It's a TAP file and to save the game we need to put an empty tape.

Is it possible to change tapes ?
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

maximus wrote: Sat Mar 22, 2025 8:33 pm since 2018 you made this stuning tool, a web emulator. :shock:
Thank you for the kind feedback. I started working on it back in 2018, mainly as an Android app, but there was a gap of 6 years when I wasn't working on it. I returned to working on it at the start of this year when I realised it should be easy enough to make it work on the web.
maximus wrote: Sat Mar 22, 2025 8:33 pm Is there a readme text or a manual to use it correctly ?
There is the README on github here:

https://github.com/lanceewing/joric/blo ... /README.md

...that explains most of the features. I haven't updated it for a couple of the more recent features yet.
maximus wrote: Sat Mar 22, 2025 8:33 pm For exemple:
I tried the game "Teknis", not available in your panel. It's a TAP file and to save the game we need to put an empty tape.

Is it possible to change tapes ?
I haven't yet implemented any features to support writing to an empty tape, or to change tapes, but I will add both to my todo list.
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

Dbug wrote: Wed Mar 19, 2025 8:22 am generally my solution is to F6 my way out of them in Oricutron :D
I've just deployed a version that adds a turbo mode that can be toggled with F6. On my MS Surface tablet, it goes at about 3 times the normal speed, so it isn't a big increase, although it's still useful for getting past those parts of games that you mentioned.

On the desktop version of JOric (i.e. the executable Java JAR file that gets created by the release build), turbo mode seems to run at about 16 times as fast as normal. This is when running it on the same Surface tablet. So that gives you some idea of the limitations of the Javascript version. I don't think there is much I can do to make the JS version run faster.
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

maximus wrote: Sat Mar 22, 2025 8:33 pm I tried the game "Teknis", not available in your panel. It's a TAP file and to save the game we need to put an empty tape.
I've been thinking about this a bit more and it raises another topic. One way to provide a generic "save" feature is via a snapshot mechanism. Most emulators have snapshot capability, which "saves" the full state of the machine for later restoration. I've been thinking that a browser API called OPFS (Origin Private File System) might be a good option for snapshots. It provides a file like mechanism where the "files" are stored within the browser's storage. I think I'll add this to my todo list as well.
User avatar
maximus
Flying Officer
Posts: 205
Joined: Thu Feb 23, 2006 7:45 pm
Location: Nimes, France

Re: JOric

Post by maximus »

ho thanks for a fast et complete answer

Yep snapshot is very practical, we don't need save tape anymore with that function

Teknis will wait your improvement :D

Thousand thanks for games fan like me

Ooops, the pinball cobra seems to not work, but I suppose it's perhaps I use a Chromebook

I'll try again next week under windows
User avatar
ibisum
Wing Commander
Posts: 1966
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: JOric

Post by ibisum »

I found this interesting snippet which is used to enable Audio on iOS in other audio-related web pages .. maybe we can try it out?

https://github.com/donbrae/onscreen-pia ... #L160-L179

I’ve found if I have the onscreen-piano-keyboard web site open in a second tab, J’Oric sound works!

https://codesandbox.io/p/sandbox/onscre ... 2Findex.js

So I guess this background audio hack is the right approach - maybe you can integrate it, dreamseal?
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

ibisum wrote: Sun Mar 23, 2025 8:46 pm I found this interesting snippet which is used to enable Audio on iOS in other audio-related web pages .. maybe we can try it out?

https://github.com/donbrae/onscreen-pia ... #L160-L179
Wow! That is quite some hack. Thanks for sending that through. I wouldn't have thought that something like this would be required.
ibisum wrote: Sun Mar 23, 2025 8:46 pm I’ve found if I have the onscreen-piano-keyboard web site open in a second tab, J’Oric sound works!

https://codesandbox.io/p/sandbox/onscre ... 2Findex.js
That is proof enough for me. :D
ibisum wrote: Sun Mar 23, 2025 8:46 pm So I guess this background audio hack is the right approach - maybe you can integrate it, dreamseal?
I'll give it a go at some point over the next few days. I'll let you know when it is ready. It would be nice to have the sound working in iOS, even if it does require a strange workaround. - I wonder why this workaround works. I might see if I can find other references to it.
User avatar
ibisum
Wing Commander
Posts: 1966
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: JOric

Post by ibisum »

Nice. Let me know when you’re ready for a test.

I mean, having an Oric running on my iPad (with keyboard) is freakin’ cool .. it’s like having a portable Oric. So yeah, I want this to work on iOS, real bad. ;)
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

ibisum wrote: Mon Mar 24, 2025 4:59 pm Nice. Let me know when you’re ready for a test.
I wanted to try something else out before resorting to that hack. I spent some time last night searching online for references to this hack and it is actually mentioned quite a lot on different websites. The consensus seems to be that the sound isn't playing due to the side muting button being turned on. If people unmute the side button on the iOS device, then the sound plays fine. What people are upset about is the inconsistency though. When the side button is muted, then HTML audio elements still play sound without any problem, but Web Audio doesn't play but is instead silent. So people are saying that if sounds played using the HTML audio element are audible, then why not Web Audio?

I ended up finding a bug raised against webkit for it:

https://bugs.webkit.org/show_bug.cgi?id=237322

The description of the bug ticket describes the problem perfectly: "This is a difference in the channel used by the APIs. Audio and video element are on the media channel, where webaudio seems to be on the default/ringer channel of iOS. This is HIGHLY confusing. I cannot count the amount of times where I have begun playback using webaudio and figured the webpage had broken, only to figure out that because I always have my phone set to Silent, the audio is muted. There are even workaround for this in the wild, where people play a clip of silence using <audio> on loop, to open up the media audio channel and force the mixer to merge both audio sources and output the webaudio api to the media channel."

The bug was raised 3 years ago and there wasn't much traction on it for a couple of years, but it would seem that the issue was resolved back in September last year. When I say resolved, it does require the use of a new currently non-standard setting to be made within the JS code. You can see it in the last comment on the ticket before it was set to resolved.:

Code: Select all

navigator.audioSession.type = "playback"
The MDN documentation doesn't even mention this setting, and if you check the caniuse website:

https://caniuse.com/mdn-api_navigator_audiosession

...it is only Safari and Safari on iOS that support it. Still, if it works, then I'm keen to give it a try, as this would be a one-liner and is supposedly their official fix for the issue. The bug ticket says it only works from version 17 and above.

Can you remind me what version you are using, and if you think this fix would work on your device?
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

dreamseal wrote: Tue Mar 25, 2025 10:35 am Can you remind me what version you are using, and if you think this fix would work on your device?
I have decided to deploy that change already, as it won't hurt if it doesn't fix the issue, I don't think. It will only try applying this setting if it determines that it is iOS, and only if navigator.audioSession is available.

Can you give it a try and see if it now works for you? It should log a new message to the console when it is applying the setting, as follows:

Code: Select all

Setting AudioSession type to 'playback' for iOS.
User avatar
ibisum
Wing Commander
Posts: 1966
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: JOric

Post by ibisum »

Yes, this now works!

Although .. this might just be psychological .. it “seems” to be a bit laggy - as in there is lag between pressing a key and getting the results. I will have a look a bit closer later in the evening when I am at home and can PING:EXPLODE all I like without disturbing my work colleagues.

But yeah, at least sound now works. :) Awesome .. I now have an Oric I can take with me everywhere, which has been a dream for a long time - even though I already had it when I ported Oricutron to the Open Pandora device, its much sexier with the iPad and Keyboard combination ..

Nice! :)
User avatar
dreamseal
Flying Officer
Posts: 163
Joined: Sat Mar 17, 2018 6:14 pm
Contact:

Re: JOric

Post by dreamseal »

ibisum wrote: Tue Mar 25, 2025 12:11 pm Yes, this now works!
That's great news! I'm glad that we finally identified the issue and found a solution, multiple solutions in fact. We can keep the other one in mind if for some reason this one has unforeseen consequences.
ibisum wrote: Tue Mar 25, 2025 12:11 pm Although .. this might just be psychological .. it “seems” to be a bit laggy - as in there is lag between pressing a key and getting the results. I will have a look a bit closer later in the evening when I am at home and can PING:EXPLODE all I like without disturbing my work colleagues.
There will be a small lag, even on laptops and desktop machines, because it tries to maintain a certain number of samples in the buffer before writing them out, so as to avoid clicks and gaps in the audio. The lag shouldn't be very noticeable though. The question would be whether the lag you are hearing is longer than what you observe on the MacBook or other platforms. On my tablet, there is a very tiny gap between me hitting enter after typing "PING" and the sound being heard, which will be mostly due to that latency that it maintains within the audio sample queue. If in the case of iOS this is quite noticeable, then it might be due to something else then. I am interested to hear back on what you discover this evening when you play with it more.

Another question would be whether you think the lag on iOS is now longer than it was when you heard it on Sunday using that workaround of having the onscreen-piano-keyboard app that you mentioned running in another tab. If you think the lag is now longer, then it could be somehow related to the audioSession setting I added. It will be interesting to hear what you discover.
ibisum wrote: Tue Mar 25, 2025 12:11 pm But yeah, at least sound now works. :) Awesome .. I now have an Oric I can take with me everywhere, which has been a dream for a long time - even though I already had it when I ported Oricutron to the Open Pandora device, its much sexier with the iPad and Keyboard combination ..

Nice! :)
Yeah, I know what you mean. I like having JOric right there in my pocket with my Android phone. I have both the native Android version installed and also use the web version from Chrome running on Android. It's great that the web very now also works on iOS like that.

What is really cool about getting it working properly on iOS is that it shows how a web app like this can bypass the whole Apple App Store process! :lol:

This is probably the most convenient way to make emulators available on iOS. We just need to have it in mind with regards to the user interface. I know the iPad has a different width to height pixel ratio when compared to most other devices, so I'd be quite interested to know what you think of its appearance overall, such as the placement of the icons, the way the scrollable game selection pages work, etc. If it isn't too difficult to do, then I'd quite like to see a few screenshots from a real iPad. I can get an idea of it by using the device toolbar in Chrome's devtools, but there's nothing like seeing it on the real thing.
User avatar
coco.oric
Squad Leader
Posts: 749
Joined: Tue Aug 11, 2009 9:50 am
Location: North of France
Contact:

Re: JOric

Post by coco.oric »

Hello, Joric is a very good idea. Let us able to launch games quicker than with Oricutron ;)

Question, are the files uploaded stored in your server or does it remains locally ?
coco.oric as DidierV, CEO Member
Historic owner of Oric, Apple II, Atari ST, Amiga
Post Reply