Page 1 of 2

OPL3 Progress

Posted: Fri Feb 24, 2023 10:05 pm
by ferropop

Hi all, wondering if there will be any more development on full OPL2/3 support?

It might be niche, but it feels underdeveloped in comparison to the rest of this great core!

Is it just the drums channel that's not implemented yet? Loading up Lemmings for example, results in the sound driver freaking out perpetually until doing a hard reset.

Happy to test!


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 1:13 am
by suww37
ferropop wrote: Fri Feb 24, 2023 10:05 pm

Hi all, wondering if there will be any more development on full OPL2/3 support?

It might be niche, but it feels underdeveloped in comparison to the rest of this great core!

Is it just the drums channel that's not implemented yet? Loading up Lemmings for example, results in the sound driver freaking out perpetually until doing a hard reset.

Happy to test!

There probably won't be any further updates for ao486. Once solgelig, the person in charge of this core, is not interested in this core, and he is not very interested in the sound of opl3 either. And I understand that this core can't implement the actual opl3 by using the MiSTer logic almost full.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 2:43 am
by ferropop

Disappointing, but fair enough. Was my dream to integrate a hardware-based OPL3 into my music studio, taking advantages of all perks of MiSTer like shared folders, SMB, USB MIDI etc.

There is the "RetroWave OPL3" project however! It's similar to the MT32-pi, houses an authentic OPL3 chip on-board and plugs into a PC through USB.

https://youtu.be/dg33QLkHAu4

I would happily help fund support for something like this for the MiSTer! If the MT32-pi found support, I'd imagine something like this could also!


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 8:30 am
by C-R-T

Does opl2 work?


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 3:25 pm
by ferropop

They both work, just incomplete. Been getting a lot of freezing, incorrect playback, I think the rhythm channel is not implemented at all, etc.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 5:02 pm
by jordi
ferropop wrote: Sun Feb 26, 2023 2:43 am

Disappointing, but fair enough. Was my dream to integrate a hardware-based OPL3 into my music studio, taking advantages of all perks of MiSTer like shared folders, SMB, USB MIDI etc.

There is the "RetroWave OPL3" project however! It's similar to the MT32-pi, houses an authentic OPL3 chip on-board and plugs into a PC through USB.

https://youtu.be/dg33QLkHAu4

I would happily help fund support for something like this for the MiSTer! If the MT32-pi found support, I'd imagine something like this could also!

Does pcxt core fits you? It has JTOPL :mrgreen:


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 5:32 pm
by Hodor
jordi wrote: Sun Feb 26, 2023 5:02 pm
ferropop wrote: Sun Feb 26, 2023 2:43 am

Disappointing, but fair enough. Was my dream to integrate a hardware-based OPL3 into my music studio, taking advantages of all perks of MiSTer like shared folders, SMB, USB MIDI etc.

There is the "RetroWave OPL3" project however! It's similar to the MT32-pi, houses an authentic OPL3 chip on-board and plugs into a PC through USB.

https://youtu.be/dg33QLkHAu4

I would happily help fund support for something like this for the MiSTer! If the MT32-pi found support, I'd imagine something like this could also!

Does pcxt core fits you? It has JTOPL :mrgreen:

Yep, but it's OPL2.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 5:41 pm
by ferropop

That's definitely interesting! Anything based off the 'nuked' implementation is basically as good as the real thing, and JTOPL definitely is! But yes, OPL2.

I know this seems niche, but in the spirit of preservation it's without question a huge part of the 90s PC experience.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 5:43 pm
by ferropop

Honestly the RetroWave OPL3 through USB seems to bridge the gap. Someone even wrote a DOS driver for it - which might just require USB support in a AO486 DOS environment -- but a MT32-pi style interaction seems much much cleaner.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 5:49 pm
by ferropop

My apologies, I didn't realize there's an entire thread dedicated to this already.


Re: OPL3 Progress

Posted: Sun Feb 26, 2023 6:57 pm
by sofakng

I've been pushing for better OPL2 or OPL3 support as well.

I'd love to see a hybrid solution (ie. Nuked OPL running on the ARM core) or external OPL2/OPL3 chips (ie. Retrowave OPL3 via USB, or OPL2/OPL3LPT via LPT but this might require too many GPIO pins?)

I'm not sure how many GPIO pins are available, but connecting something like the OPL2/OPL3LPT via the User I/O port would be amazing.


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 7:24 am
by ferropop

Yes, I struck up a convo with the creator's on his Discord, and he's aware of MiSTer but doesn't own one. He's interested though!


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 9:16 am
by jordi
sofakng wrote: Sun Feb 26, 2023 6:57 pm

I've been pushing for better OPL2 or OPL3 support as well.

I'd love to see a hybrid solution (ie. Nuked OPL running on the ARM core) or external OPL2/OPL3 chips (ie. Retrowave OPL3 via USB, or OPL2/OPL3LPT via LPT but this might require too many GPIO pins?)

I'm not sure how many GPIO pins are available, but connecting something like the OPL2/OPL3LPT via the User I/O port would be amazing.

What about simulating LPT1 port? OPL2LPT works flawlessly


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 7:03 pm
by sofakng

I don't have the knowledge or skills to modify the FPGA core but I'm not sure if there are enough GPIO pins available.

Here is the OPL2/OPL3 LPT pinout:

Code: Select all

 1: A0       ->  /Strobe   CTRL-0
 2: D0      <->  Data0
 3: D1      <->  Data1
 4: D2      <->  Data2
 5: D3      <->  Data3
 6: D4      <->  Data4
 7: D5      <->  Data5
 8: D6      <->  Data6
 9: D7      <->  Data7
16: /WR      ->  Init      CTRL-2
17: A1       ->  /Select   CTRL-3    (only for opl3lpt)

Re: OPL3 Progress

Posted: Thu Mar 02, 2023 8:31 pm
by jordi
sofakng wrote: Thu Mar 02, 2023 7:03 pm

I don't have the knowledge or skills to modify the FPGA core but I'm not sure if there are enough GPIO pins available.

Here is the OPL2/OPL3 LPT pinout:

Code: Select all

 1: A0       ->  /Strobe   CTRL-0
 2: D0      <->  Data0
 3: D1      <->  Data1
 4: D2      <->  Data2
 5: D3      <->  Data3
 6: D4      <->  Data4
 7: D5      <->  Data5
 8: D6      <->  Data6
 9: D7      <->  Data7
16: /WR      ->  Init      CTRL-2
17: A1       ->  /Select   CTRL-3    (only for opl3lpt)

Mmmm you also have cheap usb to lpt1 devices that might do the job as well


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 8:32 pm
by thorr

I love all this discussion while at the same time it is a bit crazy because the FPGA should be able to be improved and there would be no need for workarounds. Probably it is a matter of looking at the source code of existing really good OPL implementations and replicating it in the FPGA (by someone capable of doing this). However, if the alternate ideas are the path to something awesome, I am all for it.


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 9:07 pm
by sofakng

My understanding is that the ao486 core uses most of the resources of the FPGA so there is not much room for implementing anything else. (I'm not sure how many resources are required but I think Jotego's OPL is smaller than some of the others?) After researching and talking to some of the core developers, I thought an alternate solution would be using an external device (ie. RetroWave OPL3 via USB, OPL2/OPL3 LPT, etc).

Ideally if everything could be implemented into the ao486 core itself that would be great, but if not I'd be happy with any alternatives.

Unfortunately I don't think there is too much interest from the core developers to look into this but maybe one day...


Re: OPL3 Progress

Posted: Thu Mar 02, 2023 9:43 pm
by jordi
sofakng wrote: Thu Mar 02, 2023 9:07 pm

My understanding is that the ao486 core uses most of the resources of the FPGA so there is not much room for implementing anything else. (I'm not sure how many resources are required but I think Jotego's OPL is smaller than some of the others?) After researching and talking to some of the core developers, I thought an alternate solution would be using an external device (ie. RetroWave OPL3 via USB, OPL2/OPL3 LPT, etc).

Ideally if everything could be implemented into the ao486 core itself that would be great, but if not I'd be happy with any alternatives.

Unfortunately I don't think there is too much interest from the core developers to look into this but maybe one day...

Imho, and without knowledge, current z80 + emulator should be more complex than the jtopl itself.


Re: OPL3 Progress

Posted: Thu Mar 09, 2023 6:41 pm
by ferropop

Look at the success of the MT-32pi - there are certain things better suited to being add-ons. Can only speak for myself, but the thought of seeing a physical OPL3 chip attached to the MiSTer (and subsequently having Literally Perfect results) is exciting.


Re: OPL3 Progress

Posted: Thu Mar 09, 2023 6:43 pm
by ferropop

And in the spirit of preservation, is there anything stopping a dedicated FPGA-based OPL3 add-on from interfacing with MiSTer? (they exist!). No sense trying to eek out EVERY single (possibly buggy) droplet of sweat from the poor DE-10.


Re: OPL3 Progress

Posted: Thu Mar 09, 2023 7:51 pm
by blacklistedcard

Would the USB PI solution work?

https://www.hackster.io/news/sudomaker- ... 23fb502e5c

Dwaine


Re: OPL3 Progress

Posted: Sat Mar 11, 2023 1:23 pm
by ferropop
blacklistedcard wrote: Thu Mar 09, 2023 7:51 pm

Would the USB PI solution work?

https://www.hackster.io/news/sudomaker- ... 23fb502e5c

Dwaine

They don't make them anymore :(


Re: OPL3 Progress

Posted: Sat Mar 11, 2023 4:04 pm
by sofakng

They still do... it's now called the RetroWave OPL3 Express.


Re: OPL3 Progress

Posted: Sat Mar 11, 2023 11:17 pm
by ferropop
sofakng wrote: Sat Mar 11, 2023 4:04 pm

They still do... it's now called the RetroWave OPL3 Express.

Yes I brought it up a few times in the thread haha, the Express is USB and the older (now unavailable) one is 40-pin GPIO.


Re: OPL3 Progress

Posted: Mon Mar 13, 2023 5:42 pm
by sofakng

Sorry, I'm still not sure what you mean though. The older device (which I have) does have the Raspberry Pi 40-pin GPIO headers, but it communicates using USB just like the newer "OPL3 Express".

I think both Retrowave devices are similar but the "express" was created due to the chip shortage.


Re: OPL3 Progress

Posted: Wed Mar 15, 2023 4:35 pm
by ferropop
sofakng wrote: Mon Mar 13, 2023 5:42 pm

Sorry, I'm still not sure what you mean though. The older device (which I have) does have the Raspberry Pi 40-pin GPIO headers, but it communicates using USB just like the newer "OPL3 Express".

I think both Retrowave devices are similar but the "express" was created due to the chip shortage.

Understood, my bad.


Re: OPL3 Progress

Posted: Wed Mar 15, 2023 4:43 pm
by ferropop

For any devs here, I'll buy you a RetroWave OPL3 if it could inspire adding support in ao486.

Would be a dream to have an actual OPL3 chip interfacing with the MiSTer through the User IO serial port.

It doesn't need to redirect audio back into the MiSTer like the mt32-pi (although that would be amazing) - but just being able to access it from Adlib Tracker / CakeWalk / whatever... would tie this all together!


Re: OPL3 Progress

Posted: Sun Mar 03, 2024 7:37 am
by FatSlob71

IS this Possible?


Re: OPL3 Progress

Posted: Fri Apr 05, 2024 12:29 pm
by synthop

There probably won't be any further updates for ao486. Once solgelig, the person in charge of this core, is not interested in this core, and he is not very interested in the sound of opl3 either. And I understand that this core can't implement the actual opl3 by using the MiSTer logic almost full.

I've just reduced the core size of my accurate OPL3 RTL implementation at https://github.com/gtaylormb/opl3_fpga in half and I'm integrating it into ao486_MiSTer. It's using 4% more total resources now than the existing (broken as I understand it) NextZ80CPU implementation of the OPL3 but fits in the device at 84%, building fine and meets timing. I have some ideas to reduce the area even further. I just ordered my DE-10-Nano kit so once I get it and verify/debug it I'll pull request it into the main repo.

If anyone wants to test it in the meantime, feel free to try out my branch at https://github.com/gtaylormb/ao486_MiST ... _opl3_fpga


Re: OPL3 Progress

Posted: Fri Apr 05, 2024 9:50 pm
by flynnsbit
synthop wrote: Fri Apr 05, 2024 12:29 pm

There probably won't be any further updates for ao486. Once solgelig, the person in charge of this core, is not interested in this core, and he is not very interested in the sound of opl3 either. And I understand that this core can't implement the actual opl3 by using the MiSTer logic almost full.

I've just reduced the core size of my accurate OPL3 RTL implementation at https://github.com/gtaylormb/opl3_fpga in half and I'm integrating it into ao486_MiSTer. It's using 4% more total resources now than the existing (broken as I understand it) NextZ80CPU implementation of the OPL3 but fits in the device at 84%, building fine and meets timing. I have some ideas to reduce the area even further. I just ordered my DE-10-Nano kit so once I get it and verify/debug it I'll pull request it into the main repo.

If anyone wants to test it in the meantime, feel free to try out my branch at https://github.com/gtaylormb/ao486_MiST ... _opl3_fpga

Can you put one of your successful rbf builds in the releases folder in that branch? Would be good if we are all testing from the same build.