diff --git a/README.md b/README.md index e8eb020..724a89f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ If it doesn't exist, `rd_config.ini` will be created. Some relevant options you * _maxcycles_: A lower value will improve compatibility, but it will run slower. * _frmskip_: Number of frames to skip before drawing. * _debug_: If set to 1, prints debug info. - * _sound_: Enables sound (partially implemented, but not mainlined). + * _sound_: Enables sound. * _dynarec_: If set to 0, tries to load the dynarec cache from a file instead of recompiling. ###FAQs @@ -33,11 +33,6 @@ aren't worth playing. It's definitely received way more hate than it deserved. Plus, it has a nice homebrew scene with gems such as Hyper Fighting, Snatcher and many more. -> Is it compatible with ninjhax 2 / tubehax / ironhax? - -In order for the dynarec to work, we need access to services that ninjhax 2 doesn't provide. -However, it is possible run a limited version of the emulator. - > Do I need a new 3DS to run this? Unfortunately, yes. The old 3DS is too slow to run it at a playable speed. That might change in the future, @@ -57,6 +52,8 @@ between four different make targets: * **`make debug`** adds `-g -O0` to CFLAGS. It builds without optimizations so it can be debugged with gdb. * **`make slowdebug`** adds `-g -O0` to CFLAGS. It will output a lot of debug information, which will slow emulation down but might be helpful to debug game-specific issues. +For easier debugging, you can build it for android (with graphics, sound and input disabled) using `ndk-build`. + ###License Some of the code is distributed under the MIT License (check source files for that) but, since diff --git a/source/3ds/main.c b/source/3ds/main.c index d76f11b..e133da0 100644 --- a/source/3ds/main.c +++ b/source/3ds/main.c @@ -178,6 +178,7 @@ int main() { #endif V810_DSP_Init(); + sound_init(); if (tVBOpt.DSPMODE == DM_3D) { gfxSet3D(true); @@ -194,7 +195,6 @@ int main() { } v810_reset(); - sound_init(); drc_init(); clearCache(); diff --git a/source/common/allegro_compat.c b/source/common/allegro_compat.c index a393f23..e13de66 100644 --- a/source/common/allegro_compat.c +++ b/source/common/allegro_compat.c @@ -289,6 +289,8 @@ int openMenu(menu_t* menu) { bool loop = true; gfxSetDoubleBuffering(GFX_TOP, false); + if (tVBOpt.SOUND) + ndspSetMasterVol(0.0); while (loop) { pos = 0; @@ -375,6 +377,8 @@ int openMenu(menu_t* menu) { } gfxSetDoubleBuffering(GFX_TOP, true); + if (tVBOpt.SOUND) + ndspSetMasterVol(1.0); return pos; #else return -1; diff --git a/source/common/vb_sound.c b/source/common/vb_sound.c index 754f894..81dbb7d 100644 --- a/source/common/vb_sound.c +++ b/source/common/vb_sound.c @@ -44,7 +44,6 @@ void sound_init() { tVBOpt.SOUND = 0; return; } - dprintf(0, "[SND]: sound initialized\n"); for (i = CH1; i <= CH5; ++i) { channel[i] = create_sample(8, 0, 0, 32);