tildearrow / furnace

a multi-system chiptune tracker compatible with DefleMask modules
GNU General Public License v2.0
2.25k stars 200 forks source link

Uzebox support #678

Closed danboid closed 1 year ago

danboid commented 2 years ago

I'm writing a game for the open source Uzebox console but there doesn't currently seem to be any easy way to compose music for it. It would be great if furnace could serve that purpose.

The best Uzebox emulator is called cuzebox but I see furnace supposedly already supports MAME and MESS emulates the Uzebox. I presume furnace MAME support implies (potential) MESS support too?

Thanks!

tildearrow commented 2 years ago

https://github.com/Uzebox/uzebox/blob/master/gpl-3.0.txt

Sorry...

The sound generation routine is GPLv3-licensed, which means I cannot add it in Furnace (GPLv2).

Feel free to fork Furnace if you want, upgrade it to GPLv3 (the program is licensed under GPLv2 or later) and add Uzebox code.

danboid commented 2 years ago

OK, thanks for your feedback.

Would you know if it would have to be written from scratch or could one of furnace's existing chipsets be tweaked to recreate the Uzebox sound chip?

http://uzebox.org/wiki/Sound_Engine

https://uzebox.org/wiki/Patch_Commands_Defined

On furnace's list of features it says:

"quality emulation cores (Nuked, MAME, SameBoy, Mednafen PCE, NSFplay, puNES, reSID, Stella, SAASound, vgsound_emu and ymfm)"

If it included all of the MAME (and MESS) sound chips it would already support the Uzebox. Does the MAME/MESS license not conflict with the GPL 2 or am I misunderstanding what MAME support means? If you've already borrowed MAME code then this would be borrowing a bit more.

danboid commented 2 years ago

There is already Uzebox Patch Studio which is licensed under MIT

https://github.com/flaviozavan/uzebox-patch-studio

This helps create and preview Uzebox sound patches but it doesn't feature a tracker or any support for MIDI etc.

It would seem the two solutions here would be either integrating uzebox patch studio into furnace or making a VST/LV2/CLAP or whatever plugin out of uzebox patch studio.

tildearrow commented 2 years ago

Would you know if it would have to be written from scratch or could one of furnace's existing chipsets be tweaked to recreate the Uzebox sound chip?

Probably the former.

If it included all of the MAME (and MESS) sound chips it would already support the Uzebox. Does the MAME/MESS license not conflict with the GPL 2 or am I misunderstanding what MAME support means? If you've already borrowed MAME code then this would be borrowing a bit more.

The MAME license is fine. The detail here is that the Uzebox's sound is generated by the microcontroller in real time (instead of dedicated sound hardware), which means it would require bringing in the Uzebox kernel ROM to the table (which has its source code under GPLv3).

tildearrow commented 2 years ago

There is already Uzebox Patch Studio which is licensed under MIT

Hmmmm! An HLE version of the Uzebox sound system!

That could work as a basis for possible Uzebox support... Removing "not fixable" tag.

danboid commented 2 years ago

Oh that's good news! I don't want to have to develop a new plugin to get a nice Uzebox workflow.I'm going to tell the Uzebox forums about furnace now as no-one has mentioned it over there. Maybe someone can help?

danboid commented 2 years ago

http://uzebox.org/forums/viewtopic.php?f=12&t=11184