DOSBox ECE (for Windows)

Developer's Forum, for discussion of bugs, code, and other developmental aspects of DOSBox.

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-5-20 @ 22:09

lukeman3000 wrote:Out of curiosity, why make Win32 the default setting instead of "default" aka the default system midi playback device? Is Win32 normally the default setting for this parameter?
Exactly, in vanilla DOSBox Win32 is the only and therefor the default midi device under Windows OSes. So whether you set the corresponding option to "default" or "win32" doesn't matter, as it is the same.

lukeman3000 wrote:Furthermore, what defines the default midi playback device if this parameter is set to default instead of win32?
The order in which the different devices are listed in the source code:
Code: Select all
/* Include different midi drivers, lowest ones get checked first for default */
#ifdef C_FLUIDSYNTH
#include "midi_fluidsynth.h"
#endif
#include "midi_mt32.h"
static MidiHandler_mt32 &Midi_mt32 = MidiHandler_mt32::GetInstance()
#if defined(MACOSX)
#include "midi_coremidi.h"
#include "midi_coreaudio.h"
#elif defined (WIN32)
#include "midi_win32.h"
#else
#include "midi_oss.h"
#endif
#if defined (HAVE_ALSA)
#include "midi_alsa.h"
#endif


lukeman3000 wrote:This may be a little off-topic, but should mididevice always be set to win32 (if using Windows) regardless of if I'm using Sound Canvas VA or Munt, unless I want to use the built-in MT-32 emulation of ECE, in which case I choose "mt32"?
Yes, absolutely, if you want to use any external midi synthesizer that you installed in Windows, you have to choose "win32" as midi device in DOSBox and select the one you want to use with "midiconfig=x", where x is the name, part of the name or the number shown when calling "mixer /listmidi".
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby lukeman3000 » 2017-5-20 @ 22:35

Thanks, though I'm still a bit confused -- when the default midi playback device is set to "default" - will it automacitlly choose win32 if you're running on Windows, period? How does "default" know what playback device is actually default? Sorry for being dense.
lukeman3000
Member
 
Posts: 189
Joined: 2009-3-17 @ 00:59

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-5-20 @ 22:49

lukeman3000 wrote:Thanks, though I'm still a bit confused -- when the default midi playback device is set to "default" - will it automacitlly choose win32 if you're running on Windows, period?
Yes.

lukeman3000 wrote:How does "default" know what playback device is actually default?
Look at the code I posted again, especially the comment in the first line, that explains it: During compilation of the source code and building the binaries, the last device in the list is automatically set as default device for its OS. Since "win32" is the last one for Windows, it becomes default.
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby lukeman3000 » 2017-5-20 @ 23:11

Thanks for the detailed explanation - makes sense.

So in actuality, the only two options I'll probably ever switch between are win32 (for any external synthesizer), and mt-32 (for built-in Munt emulation).

Assuming that I'm using Windows and also assuming I don't particularly care to use fluidsynth (since I have SCVA).
lukeman3000
Member
 
Posts: 189
Joined: 2009-3-17 @ 00:59

Re: DOSBox ECE (Windows, Linux)

Postby James-F » 2017-6-08 @ 19:11

@YP80,
How did you "make" libpng-1.6.18? It has an error when making, no matter what I tried.
It complains about VERSION something.
I follow the building guide exactly.
User avatar
James-F
Oldbie
 
Posts: 1405
Joined: 2015-11-30 @ 04:10

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-6-08 @ 21:32

James-F wrote:@YP80,
How did you "make" libpng-1.6.18? It has an error when making, no matter what I tried.
It complains about VERSION something.
I follow the building guide exactly.

To be honest, I don't remember any errors when compiling libpng 1.6.18. Which version of zlib do you have installed? I always keep that and libpng up to date (currently libpng is version 1.6.29 and zlib is 1.2.11)
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby James-F » 2017-6-09 @ 09:02

Same error with the new libs, can't 'make' libpng.
What's going on here?

Code: Select all
TESTER@Desky-i7 ~/libpng-1.6.29
$ make
rm -f pnglibconf.c pnglibconf.tf[45]
gawk -f ./scripts/options.awk out=pnglibconf.tf4 version=search\
            ./pngconf.h ./scripts/pnglibconf.dfa\
            ./pngusr.dfa  1>&2
gawk -f ./scripts/options.awk out=pnglibconf.tf5 pnglibconf.tf4 1>&2
rm pnglibconf.tf4
mv pnglibconf.tf5 pnglibconf.c
rm -f pnglibconf.out pnglibconf.tf[12]
test -d scripts || mkdir scripts || test -d scripts
gcc -E -DHAVE_CONFIG_H -I. \
             -DPNGLIB_LIBNAME='PNG16_0' -DPNGLIB_VERSION='1.6.29' -DSYMBOL_PREFI
X='' -DPNG_NO_USE_READ_MACROS -DPNG_BUILDING_SYMBOL_TABLE  pnglibconf.c > pnglib
conf.tf1
gawk -f "./scripts/dfn.awk" out="pnglibconf.tf2" pnglibconf.tf1 1>&2
rm -f pnglibconf.tf1
mv pnglibconf.tf2 pnglibconf.out
rm -f pnglibconf.h
cp pnglibconf.out pnglibconf.h
make  all-am
make[1]: Entering directory `/home/TESTER/libpng-1.6.29'
:>pngprefix.h
depbase=`echo png.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
        /bin/sh ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
 -g -O2 -MT png.lo -MD -MP -MF $depbase.Tpo -c -o png.lo png.c &&\
        mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -g -O2 -MT png.lo -MD -MP -MF .deps/p
ng.Tpo -c png.c -o png.o
In file included from pngpriv.h:70:0,
                 from png.c:14:
pnglibconf.h:202:54: error: expected identifier or '(' before '-' token
                                                 0
                                                      ^
In file included from png.h:366:0,
                 from pngpriv.h:375,
                 from png.c:14:
pngconf.h:522:9: error: unknown type name 'ptrdiff_t'
 typedef ptrdiff_t png_ptrdiff_t;
         ^
In file included from png.c:14:0:
pngpriv.h:897:21: error: operator '!=' has no left operand
 #if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM
                     ^
make[1]: *** [png.lo] Error 1
make[1]: Leaving directory `/home/TESTER/libpng-1.6.29'
make: *** [all] Error 2
User avatar
James-F
Oldbie
 
Posts: 1405
Joined: 2015-11-30 @ 04:10

Re: DOSBox ECE (Windows, Linux)

Postby gandhig » 2017-6-09 @ 12:53

@James-F, you too have been bitten by the infamous pnglibconf.h bug.

Just edit the pnglibconf.h file in the libpng folder and remove the extra tabs/new lines between certain define parameters and its values. Then run make as usual. Please don't ask why.
User avatar
gandhig
Member
 
Posts: 329
Joined: 2014-2-12 @ 08:35

Re: DOSBox ECE (Windows, Linux)

Postby James-F » 2017-6-09 @ 13:13

Thanks.
There is no pnglibconf.h in libpng-1.6.29, but there is "pnglibconf.h.prebuilt" in libpng-1.6.29\Scripts.
Also, "extra tabs/new lines between certain define parameters and its values" is unclear to me at all. :)
User avatar
James-F
Oldbie
 
Posts: 1405
Joined: 2015-11-30 @ 04:10

Re: DOSBox ECE (Windows, Linux)

Postby gandhig » 2017-6-09 @ 13:54

James-F wrote:Thanks.
There is no pnglibconf.h in libpng-1.6.29, but there is "pnglibconf.h.prebuilt" in libpng-1.6.29\Scripts.

Sorry, there was a mistake in my previous post as it was sometime back, when the bug bit me.

Assuming that you are following 'Building DOSBox with MinGW' wiki, please follow the sequence below:
a) From within libpng-1.6.29 directory, you should have already executed the command " ./configure --disable-shared --prefix=/mingw "
b) Now run 'make' and you will get the usual error.
c) Then check the libpng-1.6.29 directory and you will find the elusive pnglibconf.h file.

James-F wrote:Also, "extra tabs/new lines between certain define parameters and its values" is unclear to me at all. :)

Once you open the pnglibconf.h, you will see lots of #defines. Some of these #define statements (around 5 or so in my case) will look odd at first glance(mainly towards the end of the file). Normally there will be just a single space between a define parameter and its value. The few abnormal ones will have a huge gap between the #define parameter and its value.
For e.g.,

Normal case:
#define PNG_ZBUF_SIZE 8192

Abnormal case:
#define PNG_ZLIB_VERNUM
0x1280)
Delete the extra tabs/spaces in all the abnormal cases and you should be good to go. Again run 'make' and if there are no errors, execute 'make install'. If you are still getting errors, please upload your config log and make output log.

Perhaps there might be a better way to correct the error at the source itself(generating proper pnglibconf.h) without the need of a manual edit, but, Ignorance is bliss in my case, in this case.
User avatar
gandhig
Member
 
Posts: 329
Joined: 2014-2-12 @ 08:35

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-6-09 @ 14:46

I made myself a patch fixing this bug in libpng: viewtopic.php?f=32&t=53116&p=573451#p573451
It's a shame it still isn't fixed after all those months.
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby James-F » 2017-6-09 @ 14:50

Thanks gandhig and YP80!
Fixed the libpng bug and patched for savestates.
Savestates is a nice addition for games that don't have cheats.
User avatar
James-F
Oldbie
 
Posts: 1405
Joined: 2015-11-30 @ 04:10

Re: DOSBox ECE (Windows, Linux)

Postby gandhig » 2017-6-09 @ 14:58

You are welcome, James-F. Glad to be of help to a regular contributor in this forum.
User avatar
gandhig
Member
 
Posts: 329
Joined: 2014-2-12 @ 08:35

Re: DOSBox ECE (Windows, Linux)

Postby bsmith1702 » 2017-6-14 @ 01:09

Yesterplay80 wrote:
willow wrote:Since dosbox daum is dead, I would like to know if Dosbox ECE own glide patch or not?

Actually, it has kekko's 3Dfx patch integrated, which wraps all Glide calls to OpenGL ones, so you don't even need an external wrapper: http://www.vogons.org/viewtopic.php?f=41&t=41853

UPDATE: Linux binaries (still shared, though) are online as well!


I was wondering how you get Glide to work in DOSBox ECE. I am trying to get Redguard to work, but it gives me the error "Fatal error: unable to load DLL." I am able to get it to work in ykhwong's build. Am I missing some files? I tried moving the glide dlls to the DOSBox directory, but that didn't work. Any help would be appreciated.
bsmith1702
Newbie
 
Posts: 4
Joined: 2005-12-16 @ 03:05

Re: DOSBox ECE (Windows, Linux)

Postby Serious Callers Only » 2017-7-11 @ 23:49

Speaking of Redguard, which is the latest and greatest Glide patch, and does it apply cleanly to upstream? I'm getting annoyed with how 'glide emulation' was rumored to be in its way upstream about 3 years ago and zilch on the svn during all that time. Might as well put it in my little automated build if its stable because god knows, i'd be waiting another 5 years.
Serious Callers Only
Member
 
Posts: 331
Joined: 2003-4-26 @ 21:34

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-7-12 @ 10:25

I don't know which is the latest and greatest, afaik they're all some years old, I use kekkos patch because it doesn't require an external wrapper and applies to the vanilla SVN cleanly.

About Redguard: I don't have that game and can't try it out myself. But aren't DLLs a Windows only thing?
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Ant_222 » 2017-7-13 @ 11:32

Yesterplay80, there seems to be a problem with the latest version of my patch on OSX. Can you please confirm that your build includes the latest version (alpha 12)? I am trying to determine whether the problem is somehow related to the OS.
Ant_222
Member
 
Posts: 335
Joined: 2010-7-24 @ 21:29

Re: DOSBox ECE (Windows, Linux)

Postby bsmith1702 » 2017-7-14 @ 03:30

Yesterplay80 wrote:About Redguard: I don't have that game and can't try it out myself. But aren't DLLs a Windows only thing?


I was thinking that the game needed the glide dlls in order to work like they do in ykhwong's build. I just placed them in the DOSBox or Redguard directory. Otherwise, I'm not sure how glide is supposed to work in DOSBox ECE. I have output=opengl and voodoo=auto. Is there anything else that I am missing to enable glide?
bsmith1702
Newbie
 
Posts: 4
Joined: 2005-12-16 @ 03:05

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-7-14 @ 12:16

Ant_222 wrote:Yesterplay80, there seems to be a problem with the latest version of my patch on OSX. Can you please confirm that your build includes the latest version (alpha 12)? I am trying to determine whether the problem is somehow related to the OS.

I just redownloaded your patch and compared the "time stamps" with the patch file I use: They're all identical, so it must be the latest alpha 12 I use.

bsmith1702 wrote:[I was thinking that the game needed the glide dlls in order to work like they do in ykhwong's build. I just placed them in the DOSBox or Redguard directory. Otherwise, I'm not sure how glide is supposed to work in DOSBox ECE. I have output=opengl and voodoo=auto. Is there anything else that I am missing to enable glide?

All the games I tried out so far worked without any DLLs, since all the wrapping is done internally in DOSBox. Did you try to start the game without any additional DLLs? BTW.: According to the reviews on GOG, where they sell the 3Dfx-accelerated version, the game runs so slow with 3Dfx that it's almost unplayable.
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 252
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby dottoss » 2017-7-14 @ 19:01

Hi,

I'm currently using DOSBox 0.74 on my Windows ME retro setup. Newest version of Dosbox ECE (or the vanilla SVN) does not run due to the SDL.DLL is expecting what I guess is minimum of NT5.1 environment due to when it's compiled it's not really targeting win9x anymore.

Anyhow, if I use the DOSBox ECE (or vanilla SVN) and replace the newer SDL.DLL with the older 0.74 SDL.DLL it works fine, no error messages. So far so good, and as far as I can see, pixel-perfect, MT32 emulator works fine which is the important thing for me but what am I missing out on when using an older SDL.DLL with DOSBox ECE (or current DOSbox SVN)?

Thanks!

EDIT: Main question: Is the magic stuff mainly happening in the .exe or in the SDL.DLL?
EDIT: This is with KernelEx installed. Please see later posts for relevance.
Last edited by dottoss on 2017-7-14 @ 19:43, edited 2 times in total.
dottoss
Newbie
 
Posts: 58
Joined: 2014-7-08 @ 11:30

PreviousNext

Return to DOSBox Development

Who is online

Users browsing this forum: No registered users and 1 guest