PortsMaster / PortMaster-New

New PortMaster repo
https://www.portmaster.games
MIT License
65 stars 68 forks source link

Port Issue: Descent & Descent II #40

Closed JeodC closed 5 months ago

JeodC commented 7 months ago

Device Type

Firmware

Port: Descent & Descent II

Description

The ports can't use the .hmp files and soundfonts. Expected behavior is SDL2_Mixer will decode .hmp and send to libmodplug for playback. However, libmodplug fails to find the symbol MODPLUG_TELL and as a result there is no music unless a .dxa addon file is used. This is potentially a pipewire issue as bringing over libmodplug from known working cfws does not help. Other firmwares use pulse audio and do not call libmodplug.

Attempted:

Reproduction Steps

Run the ports in JelOS without any .dxa music addons.

Debug.txt relevant section:

`ModPlug_SetMasterVolume'
     64354: symbol=ModPlug_GetName;  lookup in file=/roms/ports/descent/libs/libmodplug.so.1.0.0 [0]
     64354: binding file /roms/ports/descent/libs/libmodplug.so.1.0.0 [0] to /roms/ports/descent/libs/libmodplug.so.1.0.0 [0]: normal symbol `ModPlug_GetName'
     64354: symbol=ModPlug_Tell;  lookup in file=/roms/ports/descent/libs/libmodplug.so.1.0.0 [0]
     64354: symbol=ModPlug_Tell;  lookup in file=/usr/lib/libstdc++.so.6 [0]
     64354: symbol=ModPlug_Tell;  lookup in file=/usr/lib/libm.so.6 [0]
     64354: symbol=ModPlug_Tell;  lookup in file=/usr/lib/libc.so.6 [0]
     64354: symbol=ModPlug_Tell;  lookup in file=/lib/ld-linux-aarch64.so.1 [0]
     64354: symbol=ModPlug_Tell;  lookup in file=/usr/lib/libgcc_s.so.1 [0]
     64354: /roms/ports/descent/libs/libmodplug.so.1.0.0: error: symbol lookup error: undefined symbol: ModPlug_Tell (fatal)

debug.txt

JeodC commented 5 months ago

Building libmodplug from fork https://github.com/sezero/libmodplug/tree/newapis may resolve this issue.

JeodC commented 5 months ago

JelOS (and maybe Rocknix) have a broken libfluidsynth. Providing a different libfluidsynth allows midi playback. This was tested quickly by taking libfluidsynth.so from amberELEC and renaming it to libfluidsynth.a for JelOS/Rocknix. Tested by ZOMGUgoff in PortMaster Discord.