Loci - my Oric storage emulation project

This is the right place to discuss on how to implement hardware vsync, adding a VIA or AY chipset, puting multiple roms, or how to design a new flash expansion card.
User avatar
Sodiumlightbaby
Squad Leader
Posts: 757
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Thanks, that is good input. So this indicates the IO page interactions are misbehaving. Bisect E basically puts back a partly safeguard that shouldn't be needed when things are working fine, but since they are not putting it back reduces the corruptions.
User avatar
iss
Wing Commander
Posts: 1841
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Loci - my Oric storage emulation project

Post by iss »

Today I was busy to flash our next (big) batch of LOCI's :D .
What I found interesting is that LOCI comes from production in a state that you don't need to press and hold the "Firmware Update" button - it automatically enters the upload mode when plugged into host USB.
So, I searched and found this special "flash_nuke.uf2" firmware (attached) - it really nukes everything and makes LOCI to behave like just out from factory. :)
Attachments
flash_nuke.uf2.zip
(8.69 KiB) Downloaded 318 times
User avatar
Chema
Game master
Posts: 3157
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Loci - my Oric storage emulation project

Post by Chema »

Just wanted to step in to state that I have just tested my Loci prototype (one of them at least) with the ROM 0.3.0 and FW 0.3.1 and it works perfectly. I only experienced some hangs when trying the long press in the action button. Not sure if I broke something when installing some custom roms (the test rom among them).

Some games misbehave if paused with Loci and back. Manic Miner is a clear example. I tested other games, including Space:1999 and they work as a charm.

To my surprise I also tested pinforic, which needs to get back to the Loci menu to change disks and use RETURN to get back, and it worked!

Basically everything I needed seems to be working.

Will test the other prototype unit as soon as possible.

(Mental note: I WANT to test dflat as soon as possible)
User avatar
Sodiumlightbaby
Squad Leader
Posts: 757
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Chema wrote: Tue Apr 22, 2025 8:23 pm I only experienced some hangs when trying the long press in the action button. Not sure if I broke something when installing some custom roms (the test rom among them).
Yes it is a known issue from the introduction of the ULA output for the monitor. I have a partial fix, but not complete so have not yet built a new firmware with it.
raspberrypioneer
2nd Star Corporal
Posts: 22
Joined: Thu Nov 28, 2024 11:33 am

Re: Loci - my Oric storage emulation project

Post by raspberrypioneer »

Hopefully the right place for this LOCI question ...

I've been enjoying the LOCI device for my Oric-1 to load programs / use the Atmos ROM and wondered about using it with a USB joystick. There is mention of HID support for game controllers in the online LOCI user manual but no details. Are there any tips available to set this up and games to try which use joystick please?
User avatar
Sodiumlightbaby
Squad Leader
Posts: 757
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

raspberrypioneer wrote: Sun May 04, 2025 9:23 am Hopefully the right place for this LOCI question ...

I've been enjoying the LOCI device for my Oric-1 to load programs / use the Atmos ROM and wondered about using it with a USB joystick. There is mention of HID support for game controllers in the online LOCI user manual but no details. Are there any tips available to set this up and games to try which use joystick please?
Glad to hear you are enjoying LOCI :-D

The USB joystick support hasn't been much advertised as it currently has no emulation support, as in it will only work by fully using the API (+ not tested yet). For brand new LOCI enabled SW it can be used, but it's a poor solution for playing on classic games.

My idea on the backlog has been to add an emulated page 3 address that looks like the VIA register when you read the status of an IJK type joystick interface. LOCI can't overtake the VIA register, but it would allow the simplest patching of exisisting SW by just changing the address of the final register read to point to LOCI's register instead.

Meanwhile, Raxiss does have the nice IJK implementation with no SW patching required.

It's been a little quiet of late, but not idle :-D We've been bringing up the PIVIC to OCULA level, and after that I want to dive into some of the issues with OCULA+LOCI instabilities. Getting to the bottom of that could be the key to understanding the LOCI FW 0.3.x issues @dbug has been experiencing. I have an inkling they are related.
User avatar
Chema
Game master
Posts: 3157
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Loci - my Oric storage emulation project

Post by Chema »

Hi again!

I recently showcased Loci at a small retro computing meetup, and it was a big hit—everyone really liked it!

I also received some great questions and feedback. One of the most missing features was support for connecting a real floppy drive to read (or write) actual disks. A particularly interesting suggestion was whether Loci could support a Greaseweazle. I’m not familiar with the USB API that this device exposes, and I suspect there might not be enough resources on Loci’s side to handle it.

That said, I’m not entirely convinced there's a strong use case for it. If someone owns a Greaseweazle, they can already create disk dumps that can be converted to Oric DSK files and used directly with Loci. If the idea is to use the Greaseweazle to drive a floppy in real-time from the Oric, I'm not sure that's even technically feasible. I know WinUAE (the Amiga emulator) does something similar, but it might just be creating a temporary image behind the scenes.

Anyway, I just wanted to share the positive reception Loci received—it definitely sparked a lot of interest!
User avatar
ibisum
Wing Commander
Posts: 1973
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Loci - my Oric storage emulation project

Post by ibisum »

Awesome to hear of LOCI/Oric being demo'ed to an interested audience!
raspberrypioneer
2nd Star Corporal
Posts: 22
Joined: Thu Nov 28, 2024 11:33 am

Re: Loci - my Oric storage emulation project

Post by raspberrypioneer »

Thanks for all the amazing work, the LOCI is a must-have device IMHO! 8)
Sodiumlightbaby wrote: Sun May 04, 2025 6:22 pm The USB joystick support hasn't been much advertised as it currently has no emulation support, as in it will only work by fully using the API (+ not tested yet). For brand new LOCI enabled SW it can be used, but it's a poor solution for playing on classic games.
Sounds like watch this space for future developments! :) I wondered if it would be possible to have joystick to keyboard mapping e.g. joy up = arrow up etc, fire = space (ideally allowing user-defined mapping), which might make some games easier to play with a joystick?
User avatar
Dbug
Site Admin
Posts: 5042
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Loci - my Oric storage emulation project

Post by Dbug »

raspberrypioneer wrote: Mon May 05, 2025 10:21 am Sounds like watch this space for future developments! :) I wondered if it would be possible to have joystick to keyboard mapping e.g. joy up = arrow up etc, fire = space (ideally allowing user-defined mapping), which might make some games easier to play with a joystick?
That's actually a good question: There were these "programmable" joystick interfaces connected to the expansion bus that could do that:
https://osdk.org/index.php?page=articles&ref=ART17

The ECSI one did not even require some program, it was just compatible with any game, but it was plugged on both the expansion port and printer port, so possibly it was kind of detecting accesses at reading the keyboard status and simulating pressed bits on the keyboard matrix?
image_2025-05-05_160226756.png
User avatar
Sodiumlightbaby
Squad Leader
Posts: 757
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Chema wrote: Sun May 04, 2025 11:19 pm I recently showcased Loci at a small retro computing meetup, and it was a big hit—everyone really liked it!
That's so cool :D
Chema wrote: Sun May 04, 2025 11:19 pm I also received some great questions and feedback. One of the most missing features was support for connecting a real floppy drive to read (or write) actual disks. A particularly interesting suggestion was whether Loci could support a Greaseweazle. I’m not familiar with the USB API that this device exposes, and I suspect there might not be enough resources on Loci’s side to handle it.

That said, I’m not entirely convinced there's a strong use case for it. If someone owns a Greaseweazle, they can already create disk dumps that can be converted to Oric DSK files and used directly with Loci. If the idea is to use the Greaseweazle to drive a floppy in real-time from the Oric, I'm not sure that's even technically feasible. I know WinUAE (the Amiga emulator) does something similar, but it might just be creating a temporary image behind the scenes.
Yeah, not sure it makes logical sense and it could be a challenge to add the GW support in LOCI, I don't know. The nostalgia case that has been raised before does resonate better though, as an alternative lower cost path for a full hybrid emulated + physical floppy system. Yes you can do it with a replica Microdisc, but that may still be out of reach for many. If we were to explore this direction, I'm thinking starting with something like the Adafruit Floppy RP2040 GW based firmware and see how that could be adopted for this new purpose.
https://github.com/adafruit/Adafruit_Floppy
raspberrypioneer wrote: Mon May 05, 2025 10:21 am I wondered if it would be possible to have joystick to keyboard mapping e.g. joy up = arrow up etc, fire = space (ideally allowing user-defined mapping), which might make some games easier to play with a joystick?
That would be more tricky as you'd need to track the column/row access settings. Not impossible but more tricky. Still would require patching the SW which also then would mean it would only work for SW with different routines for gameplay and other keyboard interactions.
Dbug wrote: Mon May 05, 2025 3:02 pm That's actually a good question: There were these "programmable" joystick interfaces connected to the expansion bus that could do that:
https://osdk.org/index.php?page=articles&ref=ART17

The ECSI one did not even require some program, it was just compatible with any game, but it was plugged on both the expansion port and printer port, so possibly it was kind of detecting accesses at reading the keyboard status and simulating pressed bits on the keyboard matrix?
Oh wow. That's an interesting way of doing it. So basically it monitors the accesses on the expansion bus, and when at the keyboard scanning stage (AY setup), it overpowers the data bus shared between the parallel port and the AY and puts the joystick version on it? Or disables the VIA (IOCONTROL) at the right time to avoid the conflict? Mind blown. :o
Post Reply