tricksterguy / 3ds-vgmstream Goto Github PK
View Code? Open in Web Editor NEWPort of vgmstream for the nintendo 3ds along with a player
License: GNU General Public License v3.0
Port of vgmstream for the nintendo 3ds along with a player
License: GNU General Public License v3.0
Self explanatory. I closed my O3DS Luma 8.1 11.5.0 in the hope that playing a bcstm in sleep was implemented, opened it again to find that it didn't wake up (I had to hard reboot it)
Currently music stops once the 3ds is closed.
Currently its best to test the behavior on an emulator to save yourself some trouble. If a format isn't supported the worst that happens is the app freezes and you have to power off your 3ds.
Citra may report messages in the form of the following
HW.Memory core/memory.cpp:Read:107: unmapped Read32 @
afaik citra doesn't support audio currently or at least I haven't heard any sound output from it.
The list of broken formats is here
The incorrect behaviour here is you will hear one part of the song and then hear it again.
I only got this to occur when stopping files many times.
It seems my text window does not follow the cursor with more than 30 files.
Confirmed that I can barely hear it on my n3ds with headphones on but some files have small popping sounds. This is possibly due to the way 3ds-vgmstream is streaming the sound using the csnd service.
Here's the output of make:
built ... 3ds-vgmstream.smdh
main.cpp
arm-none-eabi-g++ -MMD -MP -MF /c/Users/XXX/Documents/3ds/3ds-vgmstream-master/build/main.d -g -Wall -Wno-strict-aliasing -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/source -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/include -I/c/devkitPro/portlibs/armv6k/include -I/c/devkitPro/portlibs/3ds/include -I/c/devkitPro/libctru/include -I./lib/include -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/include -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vorbis/include -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/ogg/include -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/mpg123/include -I/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/build -DARM11 -D_3DS -std=gnu++11 -fno-rtti -fno-exceptions -c /c/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp -o main.o
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp: In function 'void streamMusic(void*)':
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp:159:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if (!vgmstream)
^~
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp:162:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
int channel = 0;
^~~
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp:197:20: warning: variable 'playingBuf' set but not used [-Wunused-but-set-variable]
stream_buffer* playingBuf = &playBuffer1;
^~~~~~~~~~
In file included from c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/include/vgmstream.h:24:0,
from c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/source/main.cpp:13:
c:/devkitPro/portlibs/armv6k/include/vorbis/vorbisfile.h: At global scope:
c:/devkitPro/portlibs/armv6k/include/vorbis/vorbisfile.h:96:21: warning: 'OV_CALLBACKS_STREAMONLY_NOCLOSE' defined but not used [-Wunused-variable]
static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c:/devkitPro/portlibs/armv6k/include/vorbis/vorbisfile.h:89:21: warning: 'OV_CALLBACKS_STREAMONLY' defined but not used [-Wunused-variable]
static ov_callbacks OV_CALLBACKS_STREAMONLY = {
^~~~~~~~~~~~~~~~~~~~~~~
c:/devkitPro/portlibs/armv6k/include/vorbis/vorbisfile.h:82:21: warning: 'OV_CALLBACKS_NOCLOSE' defined but not used [-Wunused-variable]
static ov_callbacks OV_CALLBACKS_NOCLOSE = {
^~~~~~~~~~~~~~~~~~~~
c:/devkitPro/portlibs/armv6k/include/vorbis/vorbisfile.h:75:21: warning: 'OV_CALLBACKS_DEFAULT' defined but not used [-Wunused-variable]
static ov_callbacks OV_CALLBACKS_DEFAULT = {
^~~~~~~~~~~~~~~~~~~~
linking 3ds-vgmstream.elf
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/lib\libvgmstream.a(mus_acm.o): In function `find_directory_name':
mus_acm.c:(.text+0x338): undefined reference to `__ctype_ptr__'
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/lib\libvgmstream.a(mus_acm.o): In function `init_vgmstream_mus_acm':
mus_acm.c:(.text+0xb38): undefined reference to `__ctype_ptr__'
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/lib\libvgmstream.a(nwa.o): In function `init_vgmstream_nwa':
nwa.c:(.text+0xaa0): undefined reference to `__ctype_ptr__'
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/lib\libvgmstream.a(pos.o): In function `init_vgmstream_pos':
pos.c:(.text+0x1e8): undefined reference to `__ctype_ptr__'
c:/Users/XXX/Documents/3ds/3ds-vgmstream-master/libs/vgmstream/lib\libvgmstream.a(sli.o): In function `init_vgmstream_sli_ogg':
sli.c:(.text+0x338): undefined reference to `__ctype_ptr__'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/c/Users/XXX/Documents/3ds/3ds-vgmstream-master/output/3ds-vgmstream.elf] Error 1
make: *** [all] Error 2
I guess this comes from the libraries. I tried compiling them myself, but I didn't succeed.
Using a fresh devkitpro install, cloning this repo and running make I get several warnings and this error which prevents further compilation.
main.cpp:478:48: error: 'RESET_STICKY' was not declared in this scope svcCreateEvent(&bufferReadyConsumeRequest, RESET_STICKY);
Anybody know of any reason why this might be? Where would RESET_STICKY usually be set?
So the steps to create a cia file are in the makefile (note it assumes makerom and bannertool are in the path) but the only thing blocking the creation of it is an appropriate rsf file to feed makerom.
I've tried this myself, but failed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.