OPL3 Progress

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

OPL3 Progress

Unread post 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!

suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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!

C-R-T
Posts: 205
Joined: Wed Mar 03, 2021 5:10 pm
Has thanked: 21 times
Been thanked: 92 times

Re: OPL3 Progress

Unread post by C-R-T »

Does opl2 work?

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

jordi
Posts: 282
Joined: Thu Jun 11, 2020 10:11 am
Has thanked: 112 times
Been thanked: 87 times

Re: OPL3 Progress

Unread post 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:

User avatar
Hodor
Posts: 142
Joined: Mon May 25, 2020 8:29 am
Has thanked: 378 times
Been thanked: 30 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post by ferropop »

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

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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!

jordi
Posts: 282
Joined: Thu Jun 11, 2020 10:11 am
Has thanked: 112 times
Been thanked: 87 times

Re: OPL3 Progress

Unread post 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

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: OPL3 Progress

Unread post 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)
jordi
Posts: 282
Joined: Thu Jun 11, 2020 10:11 am
Has thanked: 112 times
Been thanked: 87 times

Re: OPL3 Progress

Unread post 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

thorr
Top Contributor
Posts: 1311
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 634 times
Been thanked: 308 times

Re: OPL3 Progress

Unread post 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.

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: OPL3 Progress

Unread post 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...

jordi
Posts: 282
Joined: Thu Jun 11, 2020 10:11 am
Has thanked: 112 times
Been thanked: 87 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

blacklistedcard
Posts: 91
Joined: Mon Jun 08, 2020 1:54 am
Has thanked: 3 times
Been thanked: 11 times

Re: OPL3 Progress

Unread post by blacklistedcard »

Would the USB PI solution work?

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

Dwaine

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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 :(

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: OPL3 Progress

Unread post by sofakng »

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

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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.

ferropop
Posts: 52
Joined: Wed Jul 14, 2021 2:44 pm
Been thanked: 4 times

Re: OPL3 Progress

Unread post 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!

User avatar
FatSlob71
Posts: 101
Joined: Tue Oct 13, 2020 10:11 am
Has thanked: 27 times
Been thanked: 12 times

Re: OPL3 Progress

Unread post by FatSlob71 »

IS this Possible?

synthop
Core Developer
Posts: 18
Joined: Fri Apr 05, 2024 12:23 pm
Has thanked: 5 times
Been thanked: 53 times

Re: OPL3 Progress

Unread post 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

flynnsbit
Top Contributor
Posts: 552
Joined: Sun May 24, 2020 8:07 pm
Has thanked: 185 times
Been thanked: 310 times
Contact:

Re: OPL3 Progress

Unread post 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.

Post Reply