TASEmulators / freej2me-plus

A free J2ME emulator with libretro, awt and sdl2 frontends.
https://tasemulators.github.io/freej2me-plus/
Other
9 stars 2 forks source link

Shadow Shoot and Puyo Pop Fever DX, no audio whatsoever #12

Closed TwoSpacesSG closed 1 month ago

TwoSpacesSG commented 1 month ago

Both games (see the title) are originally Sega of Japan developments, and they both share the inexplicable (to me at least) midlet name "SOCD2.MainMidlet". Both work really well on freej2me-plus, except there's just no sound coming from them, despite seemingly the lack of random vendor APIs like Sprint. At the very least this is true for the 240x320 (English) Nokia Series 60 version of Shadow Shoot (the one that allows you to turn on the sound and music at the same time), and both the 176x208 and 640x360 versions of Puyo Pop Fever DX (English).

I also don't think the "enable sound?" image is displayed correctly, on my Nokia N79 it has curved edges while on FJ-p it has corners.

Please tell me if I need to stop with the compatibility reports because I might have a bunch more coming.

AShiningRay commented 1 month ago

Definitely DON'T stop, in fact, i encourage you to file up a Pull Request for the website branch with those if possible, as you can add them directly to the compatibility list.

Audio seriously need to be worked on, not only are we missing crucial codecs (amr and mp3 as the biggest examples), but what's there is also rather buggy for now (ADPCM WAV sounds terrible in some games, probably due to the encoding not being the expected IMA format, which means the initial predictor values are not the IMA defaults either)... but then again, implementing that stuff in pure java makes things far more complicated too.

AShiningRay commented 1 month ago

Okay, so after testing these ones, it appears that they do not attempt to play the audio files they've loaded into FreeJ2ME at all (they do call stop() normally though), despite loading them no problem.

Forcing those samples to start after load pretty much makes them both play their files as they should, but of course not ideal since most J2ME games don't expect media to auto-play when loaded.

Also, J2ME-Loader doesn't suffer from this, which means that FreeJ2ME is doing something wrong, or not doing something, that these games expect in order to naturally play their media... as to what that would be, i've no idea yet.

AShiningRay commented 1 month ago

Fixed by 8e9311805fdb0559e71db2c0d1904b302d2c7e88. As well as a TON of other audio-related bugs that have been reported. FreeJ2ME's audio accuracy as a whole was massively improved by this.