Any hope for Mac users? by KoopaStarRoad at 4:27 AM EDT on June 7, 2015
vgmtoolbox and vgmstream apparently aren't available for Mac OS X users... Any hope for us? Or do we have to sit there, bawling at all the Windows users?
In case you didn't know it allows windows programs to be run on other os'. You will probably also have to download and install directx and the net framework packages from MS.
It should be possible to build the command line vgmstream ("test") on OSX. Try just running "make" from the test/ directory.
You may need to remove "-lvorbisfile -lmpg123" from the Makefile (line 3) if you don't have those libraries available, in that case you also want to remove #define VGM_USE_VORBIS and #define VGM_USE_MPEG (lines 13 and 14) from src/vgmstream.h
@hcs Ok, I'll try to do my best. Though I don't know anything about the command line version... Maybe just a copy-paste-able version for just playing a track, first? The names are easy to edit for everyone, though, so I just need a base code.
Oh, and Bootcamp... Yeah, I can try to install Windows 8, but 1. I'm too lazy 2. I have not much space on my Mac 3. I heard viruses can come over to the original Mac.
Winebottler doesn't work either, so I'll try the command line vgmstream.
Or I do something wrong, well, I just go to Advanced, select vgmstream.exe, and I tried all of the three options (''This is an installer...'' ''This is the actual program'' etc.). I want to learn how all this programming stuff works, but I don't know really where to begin.
Bootcamp doesn't work because my Mac won't notice my extern Disc reader >.> And Wine, I have no idea how to use it. Everything looks like it works fine, but I don't see an UI when clicking on vgmstream. Command Line I'm not experienced with. Maybe I'm just doing the wrong things? What about a fool proof guide for Mac users?
EDIT: By the way, Audio Overload doesn't open .ddsp files too...
Download the source from sourceforge. Remove the stuff like hcs told you. Then open a terminal in the test folder, write "make" and you have compiled the test program.
(File types are not associated, they must be dragged in or opened within the player, since I didn't feel like creating a complete vgmstream association profile. Plenty of other extensions are associated though.)
So I tried to compile as hcs told us but it won't work. The error is that some vorbis utils are accessed and then the members aren't available:
coding/../vgmstream.h:899:3: note: 'aix_codec_data' declared here } aix_codec_data; ^ coding/wwise_vorbis_utils.c:80:69: error: no member named 'header_type' in 'aix_codec_data' header_size = wwise_vorbis_get_header(streamFile, offset, data->header_t... ~~~~ ^ coding/wwise_vorbis_utils.c:112:103: error: unknown type name 'vorbis_codec_data'; did you mean 'aix_codec_data'? ...obufsize, STREAMFILE *streamFile, off_t offset, vorbis_codec_data * data... ^~~~~~~~~~~~~~~~~ aix_codec_data coding/../vgmstream.h:899:3: note: 'aix_codec_data' declared here } aix_codec_data; ^ coding/wwise_vorbis_utils.c:122:69: error: no member named 'header_type' in 'aix_codec_data' header_size = wwise_vorbis_get_header(streamFile, offset, data->header_t... ~~~~ ^ coding/wwise_vorbis_utils.c:166:105: error: unknown type name 'vorbis_codec_data'; did you mean 'aix_codec_data'? ...* iw, STREAMFILE *streamFile, off_t offset, vorbis_codec_data * data, in... ^~~~~~~~~~~~~~~~~ aix_codec_data coding/../vgmstream.h:899:3: note: 'aix_codec_data' declared here } aix_codec_data; ^ coding/wwise_vorbis_utils.c:170:68: error: no member named 'header_type' in 'aix_codec_data' header_size = wwise_vorbis_get_header(streamFile,offset, data->heade... ~~~~ ^ coding/wwise_vorbis_utils.c:184:15: error: no member named 'packet_type' in 'aix_codec_data' if (data->packet_type == MODIFIED) { ~~~~ ^ coding/wwise_vorbis_utils.c:184:30: error: use of undeclared identifier 'MODIFIED' if (data->packet_type == MODIFIED) { ^ coding/wwise_vorbis_utils.c:188:20: error: no member named 'mode_blockflag' in 'aix_codec_data' if (!data->mode_blockflag) { /* config error */ ~~~~ ^ coding/wwise_vorbis_utils.c:198:27: error: no member named 'mode_bits' in 'aix_codec_data' r_bits(iw, data->mode_bits,&mode_number); /* max 6b */ ~~~~ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 2 warnings and 20 errors generated. make[1]: *** [coding/wwise_vorbis_utils.o] Error 1 make: *** [libvgmstream.a] Error 2
I'll upload the fix soon but meanwhile you can do it like this: - go to wwise_decoder_utils.c and put this at the beginning and end: #ifdef VGM_USE_VORBIS ... (code) #endif
- go to sqex_scd.c and add this at the lines: l.23: #ifdef VGM_USE_VORBIS ... l.46: #endif ... l.551: #ifdef VGM_USE_VORBIS ... l.590: #endif
You can now pass these flags to the compiler instead of editting vgmstream.h, btw: EXTRA_CFLAGS="-DVGM_DISABLE_VORBIS -DVGM_DISABLE_MPEG"
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ../src libvgmstream.a make[1]: `libvgmstream.a' is up to date. gcc -Wall -O3 -I../ext_includes -DUSE_ALLOCA -DVGM_USE_MAIATRAC3PLUS -L../src -L ../ext_libs -lvgmstream -lat3plusdecoder -lpthread -lm "-DVERSION=\"`../version.sh`\"" test.c -L../src -L ../ext_libs -lvgmstream -lat3plusdecoder -lpthread -lm -o vgmstream ld: library not found for -lat3plusdecoder clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [test.exe] Error 1
And if I remove the -lat3plusdecoder argument i get this: make[1]: `libvgmstream.a' is up to date. gcc -Wall -O3 -I../ext_includes -DUSE_ALLOCA -DVGM_USE_MAIATRAC3PLUS -L../src -L ../ext_libs -lvgmstream -lpthread -lm "-DVERSION=\"`../version.sh`\"" test.c -L../src -L ../ext_libs -lvgmstream -lpthread -lm -o vgmstream Undefined symbols for architecture x86_64: "_Atrac3plusDecoder_closeContext", referenced from: _reset_at3plus in libvgmstream.a(at3_decoder.o) _free_at3plus in libvgmstream.a(at3_decoder.o) "_Atrac3plusDecoder_decodeFrame", referenced from: _decode_at3plus in libvgmstream.a(at3_decoder.o) "_Atrac3plusDecoder_openContext", referenced from: _reset_at3plus in libvgmstream.a(at3_decoder.o) _init_vgmstream_riff in libvgmstream.a(riff.o) "_mpg123_decode", referenced from: _init_mpeg_codec_data in libvgmstream.a(mpeg_decoder.o) _decode_mpeg in libvgmstream.a(mpeg_decoder.o) _decode_fake_mpeg2_l2 in libvgmstream.a(mpeg_decoder.o) "_mpg123_delete", referenced from: _free_mpeg in libvgmstream.a(mpeg_decoder.o) _init_mpg123_handle in libvgmstream.a(mpeg_decoder.o) "_mpg123_feedseek", referenced from: _reset_mpeg in libvgmstream.a(mpeg_decoder.o) _seek_mpeg in libvgmstream.a(mpeg_decoder.o) "_mpg123_getformat", referenced from: _init_mpeg_codec_data in libvgmstream.a(mpeg_decoder.o) "_mpg123_info", referenced from: _init_mpeg_codec_data in libvgmstream.a(mpeg_decoder.o) _mpeg_bytes_to_samples in libvgmstream.a(mpeg_decoder.o) "_mpg123_init", referenced from: _init_mpg123_handle in libvgmstream.a(mpeg_decoder.o) "_mpg123_new", referenced from: _init_mpg123_handle in libvgmstream.a(mpeg_decoder.o) "_mpg123_open_feed", referenced from: _init_mpeg_codec_data in libvgmstream.a(mpeg_decoder.o) _init_mpg123_handle in libvgmstream.a(mpeg_decoder.o) "_mpg123_param", referenced from: _mpeg_set_error_logging in libvgmstream.a(mpeg_decoder.o) _init_mpg123_handle in libvgmstream.a(mpeg_decoder.o) "_ov_clear", referenced from: _free_ogg_vorbis in libvgmstream.a(ogg_vorbis_decoder.o) _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_ov_comment", referenced from: _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_ov_info", referenced from: _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_ov_open_callbacks", referenced from: _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_ov_pcm_seek", referenced from: _reset_ogg_vorbis in libvgmstream.a(ogg_vorbis_decoder.o) "_ov_pcm_seek_lap", referenced from: _seek_ogg_vorbis in libvgmstream.a(ogg_vorbis_decoder.o) "_ov_pcm_total", referenced from: _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_ov_read", referenced from: _decode_ogg_vorbis in libvgmstream.a(ogg_vorbis_decoder.o) "_ov_test_callbacks", referenced from: _init_vgmstream_ogg_vorbis_callbacks in libvgmstream.a(ogg_vorbis_file.o) "_vorbis_block_init", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_comment_clear", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _free_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _free_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) _free_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_comment_init", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_dsp_clear", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _free_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _free_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) _free_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_info_clear", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _free_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _free_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) _free_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_info_init", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis", referenced from: _decode_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _decode_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _decode_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_blockin", referenced from: _decode_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _decode_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _decode_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_headerin", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_init", referenced from: _init_fsb_vorbis_codec_data in libvgmstream.a(fsb_vorbis_decoder.o) _init_ogl_vorbis_codec_data in libvgmstream.a(ogl_vorbis_decoder.o) _init_wwise_vorbis_codec_data in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_pcmout", referenced from: _decode_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _decode_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _decode_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_read", referenced from: _decode_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _decode_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _decode_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) "_vorbis_synthesis_restart", referenced from: _reset_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _seek_fsb_vorbis in libvgmstream.a(fsb_vorbis_decoder.o) _reset_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _seek_ogl_vorbis in libvgmstream.a(ogl_vorbis_decoder.o) _reset_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) _seek_wwise_vorbis in libvgmstream.a(wwise_vorbis_decoder.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [test.exe] Error 1