sergiou87 / open-supaplex

Reverse engineering Supaplex
247 stars 40 forks source link

[3DS][Suggestion] Medium quality audio on New3DS #3

Closed MrHuu closed 4 years ago

MrHuu commented 4 years ago

Nice job on this project!

However, the music sounds very dull on the 3DS. The low quality audio is required to have the game run at acceptable speeds.

For the old version of the 3DS this is true, but the new 3DS model running at 804mhz is capable of full speed with medium quality audio.

Here's an example on how to check for a new3DS model and set speeds accordingly.

#include "3ds.h"

#ifdef _3DS
_Bool isN3DS;
    APT_CheckNew3DS(&isN3DS);
    if(isN3DS)
        osSetSpeedupEnable(true);
#endif

I've build a version with medium quality audio set, which i'm using on my new3DS. It sounds way better and still runs full speed.

sergiou87 commented 4 years ago

Ohhh!! I didn't know that, thank you so much! 😄

The only problem is now I have to either create 2 versions of the game for 3DS (old and new), or only one with both medium and low quality sounds, which means ~40MB 😐

I can't remember if I tried medium-quality sounds initializing the audio device to 11khz in SDL_mixer and see if that worked fine (good performance and correct music speed/pitch), but I'll definitely give it a try.

In any case that trick will be useful to make sure the game performs as good as possible, thanks again! I'll keep you posted 😄

sergiou87 commented 4 years ago

Wow, the difference is HUGE! Thanks for the suggestion!

I tried using medium quality audio files but using the low quality audio settings (11khz mono sound), but that didn't do the trick, the performance is horrible. I'm gonna explore a few other options.

sergiou87 commented 4 years ago

Fixed with 8614a18f79047370d5e684b6d30a30afea3bb0c2 and baed46eb0749c76a1ae00d527e9a8f86c74a0e09

I tried to use MP3 instead of OGG (since in theory it's easier to decode), but didn't make any difference. So in the end I decided to create 2 bundles: one for old 3DS and another one for new 3DS.

I also created two builds available in the Nightly release. Thanks again for your suggestion!