VOGONS


First post, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I'm not asking for support here, since I'm playing with various SVN builds, but I'm wondering if anyone else has seen this:

I'm seeing different results when trying to mount GOG's World of Xeen CD-ROM images in different DOSBox builds:

0.74: IMGMOUNT command takes several seconds to complete, but otherwise seems to work.
EmuCR "pure" SVN r3833: Refuses to mount the image no matter what I try.
DOSBox SVN-Daum 2013-07-25 (also based on SVN r3833): IMGMOUNT completes almost instantaneously, but sometimes results in the game complaining that the CD-ROM is not valid.

Note that the "images" I'm trying to mount are basically BIN/CUE files with a bunch of OGG files defined as audio tracks.

Edit: All 3 DOSBox builds are able to mount my Albion BIN/CUE, so I'm wondering if the issue is the OGG tracks?

Reply 2 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

You mean SDL_mixer?

I started on trying to build DOSBox myself using Visual Studio, but it's a pain because there aren't official binaries for libpng. I might build in cygwin instead, although that may crash and burn too since DOSBox's wiki seems to favor mingw.

Reply 3 of 18, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

No, I meant SDL_sound, SDL_mixer is of no use with Dosbox.
And searching here, I do indeed remember correctly that you need SDL_Sound for mp3/ogg support in cue sheets.

Edit: I would go for Mingw/msys, always liked that more than cygwin when I was on Windows 😀

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 4 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Interesting, didn't know SDL_sound was a thing. SDL_mixer also supports Ogg and is a more official SDL addon.

Mingw/msys is better in that binaries built with it are not dependent on weird DLL(s), but I already have Cygwin installed because it's just so damn convenient. Cygwin also gives you a full autotools setup, just like building on Linux.

Reply 5 of 18, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Mingw with msys can give you the same autotools environment 😉

I strongly dislike SDL-sound and-Mixer. They both bring a lot of unneeded dependencies, especially sdl-sound. But it's not as uncommon just not very known in the windows world because it is a bitch to compile on Windows 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 6 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Maybe I should give up on trying to make my own SVN build with OGG support after all, then.

Reply 7 of 18, by bloodbat

User metadata
Rank Oldbie
Rank
Oldbie
Dominus wrote:

I strongly dislike SDL-sound and-Mixer. They both bring a lot of unneeded dependencies, especially sdl-sound. But it's not as uncommon just not very known in the windows world because it is a bitch to compile on Windows 😉

It's not that bad

Reply 8 of 18, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

he he, could be, last time I tried was over five years ago 😀
And back then I wasn't used to all that autotools stuff and how to figure out what the problem is when something doesn't work.

For Exult we got rid of SDL_mixer and implemented the ogg playback directly through ogg/vorbis instead of going through SDL_mixer.

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 9 of 18, by truth_deleted

User metadata

Per Dominus' suggestion, attached is dosbox-SVN+SDL_sound+OGG. Used the latest MinGW for win32 and the following: SDL 1.2.15 with directx headers, pthreads headers/libs; SDL_net; libogg 1.3.1, libvorbis 1.3.3, sdl_sound 1.0.3. Once all installed under MinGW, then dosbox detected SDL_sound during the configure step. However, the binary is untested against a real example requiring SDL_sound (+OGG).

I patched SDL_sound 1.0.3 under mingw. The patch is based on instructions here: http://bywaly.blogspot.com/2013/05/mingwmsys- … nt-face.html#18

Included in the attached archive are the above patch, dosbox, and dll files. Included are the dlls for libvorbis and libogg, although they may not be necessary if statically built into the dosbox binary. Also, included SDL.dll+OHQ built by Visual Studio; this is named SDL_VS.dll and can be renamed to SDL.dll to enable OpenGL-HQ mode.

Edit: attached binary cannot handle OGG cuesheets; see post further below for a possible working binary.

Last edited by truth_deleted on 2013-10-17, 05:40. Edited 2 times in total.

Reply 11 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Thanks! I'll give it a try when I have time.

Reply 12 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Update: Unfortunately truth5678's build fails to mount the image, just like the EmuCR SVN build.

Reply 13 of 18, by truth_deleted

User metadata

I wish I had a test image to troubleshoot the issue. One guess is the problem is related to the library versions or the compiling setup; perhaps a VS generated binary built with the above libraries would handle the OGG files properly.

Reply 14 of 18, by bloodbat

User metadata
Rank Oldbie
Rank
Oldbie

Mine handles OGG files properly, but doesn't include OpenGL HQ patch. Thing is, everything is built using Visual C++ and Windows SDK with the same parameters (can't mix and match stuff built with /MT and /MD and such); OGG support is NOT enabled by default in config.h (or even present, for that matter, according to the SVN source I'm looking at) you have to add it by hand (if building with visual c++, don't know about mingw), to enable it add

#define C_SDL_SOUND 1

to config.h; you also have to fix Visual C++'s lack of lround; add your include file path to SDL_Sound, the path to the library and add it to the linker dependencies and...you should have a working version with OGG file support.
Soooo...with vanilla SVN code, namely the one emuCR uses...you won't get ogg support, probably.
Again this is written looking at the way I do it with Visual C++, don't know about mingw, but the core problem is probably the same: SDL_Sound is not enabled.

Reply 15 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Does the removal of the #define(s) needed for OGG support from the SVN source count as a regression, since the official 0.74 release has OGG support built in?

Reply 16 of 18, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

no, it is simply defined out (and always has been) in order to make compilation easier for beginners.

Water flows down the stream
How to ask questions the smart way!

Reply 17 of 18, by truth_deleted

User metadata

Attached is an archive with a binary of dosbox-SVN+OGG, a SDL_sound patch, and required dll files. Used latest MinGW to compile all binaries. During the configure step for dosbox, SDL_sound+OGG was detected, a requirement for games having OGG-encoded music tracks on a cuesheet file/ISO image (a few GOG games).

******************************************************************************
INSTRUCTIONS TO COMPILE DOSBOX BINARY + OGG:
MinGW: http://sourceforge.net/projects/mingw/files/
Install msys-base, mingw-developer-toolkit, mingw32-base, mingw32-gcc-g++, mingw32-pthreads-w32
Copy these directx headers to /mingw/include:
http://www.libsdl.org/extras/win32/common/dir … tx-devel.tar.gz
Set a mount point (type at commandline): mount c:/mingw /mingw

Move the following source code distributions to your user directory under /home before compiling

SDL 1.2.15 source: http://www.libsdl.org/download-1.2.php
CFLAGS="-O2" CXXFLAGS="-O2 -mno-ms-bitfields" CPPFLAGS="-I/usr/include/directx" ./configure --prefix=/usr; make install

SDL_net 1.2.8: http://www.libsdl.org/projects/SDL_net/release-1.2.html
CFLAGS="-O2" CXXFLAGS="-O2 -mno-ms-bitfields" ./configure --prefix=/usr; make install

libogg 1.1.3:
http://downloads.xiph.org/releases/ogg/
./configure --prefix=/usr; make install

libvorbis 1.2.2:
http://downloads.xiph.org/releases/vorbis/
./configure --prefix=/usr; make install

Copy /usr/include/ogg and /usr/include/vorbis directories to /mingw/include/
Copy /usr/lib ogg and vorbis library files to /mingw/lib/

sdl_sound 1.0.3:
http://www.icculus.org/SDL_sound/downloads/
Apply patch from attached archive (patch -p1 < MinGW_SDL_sound-1.0.3.diff)
./configure --prefix=/usr; make install

Dosbox-SVN: http://source.dosbox.com/dosboxsvn.tgz
./autogen.sh
LIBS="-logg -lvorbis -lvorbisfile" CFLAGS="-O2" CXXFLAGS="-O2 -mno-ms-bitfields" CPPFLAGS="-I/usr/include" ./configure --enable-core-inline
make

Files to include in dosbox directory: dosbox.exe, SDL.dll, SDL_net.dll, libgcc_s_dw2-1.dll, libstdc++-6.dll, libogg-0.dll, libvorbis-0.dll, libvorbisfile-3.dll
optional: run 'strip -d <filename>' to reduce size of above binary files

Last edited by truth_deleted on 2013-10-18, 19:43. Edited 2 times in total.

Reply 18 of 18, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Thanks, I'll give it a try tonight.

Qbix also provided me with a build using the same toolchain as 0.74, and it behaves just like 0.74 does (i.e. takes a long time to run IMGMOUNT, but seems to work fine).

Edit: Yep, this build works.