EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
965 stars 183 forks source link

Allow the FmMidi non-Windows default soundfont to be used on Windows through a setting in EasyRPG.ini and through an argument #3117

Open Mimigris opened 9 months ago

Mimigris commented 9 months ago

On non-Windows platforms, MIDI files sound different compared to what is done on Windows (and thus, how games made with MIDI files were intended to be played) due to limitations about the rights of the Roland General MIDI used there. FmMidi is used on the other platforms (may be another complete library for some smaller platforms like 3DS for optimization) for that as a replacement, it will sound different compared to Windows but it is expected. To allow to test how your MIDI files will sound on other platforms if there's a plan to do a multi-platforms release, it could be useful to have a setting for Windows users to be able to use the FmMidi setting when playing MIDI files. This could be done by having an argument to use similar to --disable-audio or --soundfont FILE, and by having a setting for that in the EasyRPG.ini file, also allowing it to be used for a release of a game. (I suppose that just using a soundfont sounding similar to it could be done too, though it would require to add an extra file by the user, and if the FmMidi part is a dependency always being present it would just be an additional file added by the user while it could have been not added due to its code being technically already present).

(Correct me if there is anything wrong about the names used and how I used them, I'm not really knowledgeable in this domain)

Ghabry commented 1 week ago

There is no command line argument what you can configure it in the settings. Is this good enough for you?

Mimigris commented 1 week ago

I suppose so, soundfonts can be provided in any case if a developer wants to alter how their midi sound in any case so having FmMidi as a setting only for Windows should be enough.