[No] Make Java OPL3 Emulator be an independent library

Moderator: GZDoom Developers

Make Java OPL3 Emulator be an independent library

Postby Wohlstand » Sat Apr 07, 2018 4:38 pm

Hello!

Recently we are discussed about of giving support to libADLMIDI use multiple emulators (in the current case, support all emulators are supported by "OPL Synth Emulation" device now) with an ability to switch them in run time.

It's my backend stuff I implemented over Nuked OPL3 and DosBox emulator:
https://github.com/Wohlstand/OPL3BankEd ... /opl/chips

And on OPNMIDI side I made it over Nuked OPN2, MAME YM2612, and GENS 2.10 emulators:
https://github.com/Wohlstand/libOPNMIDI ... /src/chips

I have checked out emulators inside of GZDoom and I found Java OPL3 emulator is "too integrated" into GZDoom and to have used it separately, it also will pull a dozen of other files are not related to emulator itself, but GZDoom in most.

I gonna to remove dependencies of Java OPL3 emulator on GZDoom's guts to let it be a pure STL-C++ that can be used everywhere. I created this to discuss the entire process and ask any questions related to GZDoom's internals.
User avatar
Wohlstand
lib[ADL&OPN]MIDI Developer
 
Joined: 17 Dec 2017
Location: Moscow, Russia
Discord: Wohlstand#4881
Github ID: Wohlstand
Operating System: Debian-like Linux (Debian, Ubuntu, Kali, Mint, etc) 64-bit
OS Test Version: Yes (Using Development/Testing Version)
Graphics Processor: nVidia with Vulkan support

Re: Make Java OPL3 Emulator be an independent library

Postby Graf Zahl » Sat Apr 07, 2018 11:57 pm

I'm sorry but this is out of scope for us. This is external code, after all, even if it was ported to C++ for use in ZDoom. That port was done by randi, who, as we all know is no longer working here. For the rest of us developers this is as much a black box as it is for you, if not more, because no active developer has any musical background.

I'm afraid that you may have to find someone else with better knowledge about MIDI/OPL to help you out here.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Make Java OPL3 Emulator be an independent library

Postby Wohlstand » Mon Apr 09, 2018 5:09 pm

Anyway, as I told, I'll try to dig it by myself and replace the GZDoom-specific code with common one and on success, I'll send it to you. Myself I have no fear of the emulator itself, I only need to replace the FRandom thing and xz_Float.h with pure STL.
User avatar
Wohlstand
lib[ADL&OPN]MIDI Developer
 
Joined: 17 Dec 2017
Location: Moscow, Russia
Discord: Wohlstand#4881
Github ID: Wohlstand
Operating System: Debian-like Linux (Debian, Ubuntu, Kali, Mint, etc) 64-bit
OS Test Version: Yes (Using Development/Testing Version)
Graphics Processor: nVidia with Vulkan support

Re: Make Java OPL3 Emulator be an independent library

Postby Graf Zahl » Tue Apr 10, 2018 12:27 am

Ok. xs_Float is relatively harmless. You can just copy over that file, it got no dependencies at all. Of course on modern SSE2 hardware most of its purpose has gone away, it was mostly to work around x87's poorly defined float->int conversions.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Make Java OPL3 Emulator be an independent library

Postby Wohlstand » Thu Oct 08, 2020 1:45 am

Hello! And sorry for the necro-posting. Since I found this topic again, I want to notice that with a help of Jean Pierre Cimalando, this task has been solved a year ago.
I leaving the link to the standalone version of Java OPL3 emulator for everyone who is interested for it: https://github.com/Wohlstand/OPL3BankEd ... vaOPL3.hpp
User avatar
Wohlstand
lib[ADL&OPN]MIDI Developer
 
Joined: 17 Dec 2017
Location: Moscow, Russia
Discord: Wohlstand#4881
Github ID: Wohlstand
Operating System: Debian-like Linux (Debian, Ubuntu, Kali, Mint, etc) 64-bit
OS Test Version: Yes (Using Development/Testing Version)
Graphics Processor: nVidia with Vulkan support


Return to Closed Feature Suggestions

Who is online

Users browsing this forum: No registered users and 2 guests