From eeaf4f93104521eb978f3dd747a6bbcd8a82008e Mon Sep 17 00:00:00 2001 From: ariahiro64 Date: Sun, 3 Oct 2021 03:17:31 -0400 Subject: [PATCH] O3 to greatly increase mp3 quality and responsiveness --- Makefile | 4 +-- docker/setup-linux.sh | 7 +++-- res/filesystem/sounds/clang.wav | Bin 40108 -> 0 bytes src/main.c | 45 ++++++++++++++++---------------- 4 files changed, 28 insertions(+), 28 deletions(-) delete mode 100644 res/filesystem/sounds/clang.wav diff --git a/Makefile b/Makefile index 947041c..1fb66ed 100755 --- a/Makefile +++ b/Makefile @@ -19,9 +19,9 @@ OBJDIR = ./obj BINDIR = ./bin TOOLSDIR = ./tools -LINK_FLAGS = -O1 -L$(ROOTDIR)/lib -L$(ROOTDIR)/mips64-elf/lib -ldragon -lmad -lmikmod -lyaml -lc -lm -ldragonsys -lnosys $(LIBS) -Tn64ld.x +LINK_FLAGS = -O3 -L$(ROOTDIR)/lib -L$(ROOTDIR)/mips64-elf/lib -ldragon -lmad -lmikmod -lyaml -lc -lm -ldragonsys -lnosys $(LIBS) -Tn64ld.x PROG_NAME = OS64P -CFLAGS = -std=gnu99 -march=vr4300 -mtune=vr4300 -O1 -I$(INCDIR) -I$(ROOTDIR)/include -I$(ROOTDIR)/mips64-elf/include -lpthread -lrt -D_REENTRANT -DUSE_TRUETYPE $(SET_DEBUG) +CFLAGS = -std=gnu99 -march=vr4300 -mtune=vr4300 -O3 -I$(INCDIR) -I$(ROOTDIR)/include -I$(ROOTDIR)/mips64-elf/include -lpthread -lrt -D_REENTRANT -DUSE_TRUETYPE $(SET_DEBUG) ASFLAGS = -mtune=vr4300 -march=vr4300 CC = $(GCCN64PREFIX)gcc AS = $(GCCN64PREFIX)as diff --git a/docker/setup-linux.sh b/docker/setup-linux.sh index 439acef..1da6834 100644 --- a/docker/setup-linux.sh +++ b/docker/setup-linux.sh @@ -25,7 +25,6 @@ export N64_INST=/usr/local/libdragon # Pull the latest libdragon source code and make a build directory git clone https://github.com/dragonminded/libdragon.git # set to correct commit -cd libdragon && git checkout b26fce6 && cd .. # fix issues with the build scripts sed -i -- 's|${N64_INST:-/usr/local}|/usr/local/libdragon|g' libdragon/tools/build @@ -36,11 +35,11 @@ sed -i -- 's| -Werror| -w|g' libdragon/tools/mksprite/Makefile # make a build folder for libdragon mkdir libdragon/build_gcc -cp libdragon/tools/build libdragon/build_gcc +cp libdragon/tools/build-toolchain.sh libdragon/build/build-toolchain.sh # run the build script (this will take a while! and if not sudo, will ask for password mid flow!) -cd libdragon/build_gcc -./build +cd libdragon/build +./build-toolchain.sh cd .. # run the install script [sudo req] diff --git a/res/filesystem/sounds/clang.wav b/res/filesystem/sounds/clang.wav deleted file mode 100644 index e5eca5331f74ecba3feb301f6b6194ebd3d6d676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40108 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 O4W2pw65mEX!v6v2jXyU4 diff --git a/src/main.c b/src/main.c index 129e87f..e5f120d 100755 --- a/src/main.c +++ b/src/main.c @@ -3243,8 +3243,8 @@ void loadFile(display_context_t disp) long long start = 0, end = 0, curr, pause = 0, samples; int rate = 44100, last_rate = 44100, channels = 2; - audio_init(44100, 4); - buf_size = audio_get_buffer_length() * 4; + audio_init(44100, 8); + buf_size = audio_get_buffer_length() * 6; buf_ptr = malloc(buf_size); mp3_Start(name_file, &samples, &rate, &channels); @@ -3254,9 +3254,10 @@ void loadFile(display_context_t disp) while (!(disp = display_lock())) ; clearScreen(disp); - drawShortInfoBox(disp, " MP3 Playback", 0); + drawShortInfoBox(disp, " Playing MP3", 0); display_show(disp); input_mapping = mp3; //mp3 stop + break; } default: @@ -4127,14 +4128,12 @@ void handleInput(display_context_t disp, sprite_t *contr) while (!(disp = display_lock())) ; - new_scroll_pos(&cursor, &page, MAX_LIST, count); - clearScreen(disp); //part clear? - display_dir(list, cursor, page, MAX_LIST, count, disp); - drawBoxNumber(disp, 4); - view_mpk(disp); - display_show(disp); if (sound_on) - playSound(2); + playSound(2); + + drawBoxNumber(disp, 4); + display_show(disp); + view_mpk(disp); input_mapping = abort_screen; break; @@ -4451,20 +4450,22 @@ void handleInput(display_context_t disp, sprite_t *contr) case mp3: mp3_Stop(); mp3playing = 0; - //this causes bugs why is it here? - //audio_close(); - free(buf_ptr); - buf_ptr = 0; + audio_close(); + free(buf_ptr); + buf_ptr = 0; + audio_init(44100, 8); + while (!(disp = display_lock())) + ; - while (!(disp = display_lock())) - ; - clearScreen(disp); //part clear? - display_dir(list, cursor, page, MAX_LIST, count, disp); + graphics_set_color(graphics_make_color(0xFF, 0xFF, 0xFF, 0xFF), graphics_make_color(0x00, 0x00, 0x00, 0x00)); + new_scroll_pos(&cursor, &page, MAX_LIST, count); + clearScreen(disp); + display_show(disp); - display_show(disp); - - input_mapping = file_manager; + display_dir(list, cursor, page, MAX_LIST, count, disp); + input_mapping = file_manager; + display_show(disp); break; default: @@ -4533,7 +4534,7 @@ int main(void) if (sound_on) { //load soundsystem - audio_init(44100, 2); + audio_init(44100, 8); sndInit(); }