DOSBox ECE (for Windows)

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

Re: DOSBox ECE (Windows, Linux)

Postby Qbix » 2017-3-03 @ 15:25

as long as they wait for retrace on that one specific function. I have to look up which one.
It's not really a bug in dosbox, more in the build engine, with a specific number of display pages available (which depends on the resolution + amount of videomemory)
It is hidden if you wait for the retrace, if I recall correctly.
Water flows down the stream
How to ask questions the smart way!
User avatar
Qbix
DOSBox Author
 
Posts: 10355
Joined: 2002-11-27 @ 14:50
Location: Fryslan

Re: DOSBox ECE (Windows, Linux)

Postby filipetolhuizen » 2017-3-04 @ 01:07

Yesterplay80 wrote:
filipetolhuizen wrote:I tested your 4MB build. It ran Blood way faster than 2MB but I experienced more flickering with it running at 1280x1024.

Could you provide a savegame of such a spot in the game so I can try it out?

Right on the first room in E1L1.
User avatar
filipetolhuizen
Oldbie
 
Posts: 1092
Joined: 2006-10-24 @ 02:25
Location: Curitiba, Brazil

Re: DOSBox ECE (Windows, Linux)

Postby filipetolhuizen » 2017-3-04 @ 01:14

Qbix wrote:as long as they wait for retrace on that one specific function. I have to look up which one.
It's not really a bug in dosbox, more in the build engine, with a specific number of display pages available (which depends on the resolution + amount of videomemory)
It is hidden if you wait for the retrace, if I recall correctly.

I'm aware it's a build engine bug and not in DOSBox. Too bad the available patch is not compatible with the current SVN code.
User avatar
filipetolhuizen
Oldbie
 
Posts: 1092
Joined: 2006-10-24 @ 02:25
Location: Curitiba, Brazil

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-3-05 @ 15:04

Sorry, filipetolhuizen, I still can't reproduce your problem. I tried it on several PCs, with the 2MB and 4MB DOSBox, and everytime 1280x2014 ran better than 1152x864, and 1024x768. With 2MB there's almost no flickering, with 4MB there's absolutely no flickering at all. Exactly what the use GameRanger experienced here: https://www.gog.com/forum/blood_series/ ... esolutions

Which brings me to this question: What version of Blood are you running?
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 235
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby filipetolhuizen » 2017-3-05 @ 15:49

Yesterplay80 wrote:Sorry, filipetolhuizen, I still can't reproduce your problem. I tried it on several PCs, with the 2MB and 4MB DOSBox, and everytime 1280x2014 ran better than 1152x864, and 1024x768. With 2MB there's almost no flickering, with 4MB there's absolutely no flickering at all. Exactly what the use GameRanger experienced here: https://www.gog.com/forum/blood_series/ ... esolutions

Which brings me to this question: What version of Blood are you running?

Latest Plasmapack version.
User avatar
filipetolhuizen
Oldbie
 
Posts: 1092
Joined: 2006-10-24 @ 02:25
Location: Curitiba, Brazil

Re: DOSBox ECE (Windows, Linux)

Postby gandhig » 2017-3-05 @ 23:07

Cleaned up my previous post.
gandhig wrote:Assuming that yours is a 32bit build, problem is probably due to configure.ac not being able to detect the presence of many needed libraries in the /usr/lib/i386-linux-gnu/ folder(i.e. in case of lubuntu, maybe different in Mint) without external help. If all the required packages are installed in the system and the ./configure command is appended with LDFLAGS pointing to /usr/lib/i386-linux-gnu folder(lubuntu), then all the 'checkings' should turn out 'yes'. Atleast there shouldn't be any errors such as '-l<lib> not found'.

Please install libsdl-sound1.2 packages(both bin & dev). Please search your system for the location of 'GL' library. Run ./configure LDFLAGS="-static" LDFLAGS="-L/path/to/lib". In my case it was /usr/lib/i386-linux-gnu.
Above is mostly wrong, i.e, except for the installation of libsdlsound package.

Attempt to build a fully static dosbox binary failed, hence a compromise had to be made. The following libraries had to be dynamically linked due to certain reasons or failings:
1. libGL 2. libpthread 3. libdl & 4. Some main & base libraries like libc etc

Good news is, static compilation of vanilla DOSBox ( SVN r4006) was successful with a mix of static and dynamic linking(-lGL & few base libraries only). Steps are as follows:

a) Execute ./autogen.sh

b) Execute ./configure

c) Check the LIBS entry in the Main & src Makefiles ('-lSDL_sound -lasound -lm -ldl -lpthread -L/usr/lib/i386-linux-gnu -lSDL -lpng -lz -lSDL_net -lX11 -lGL', in my case)

d) Check whether all the above libraries are in their static form in the system. If not, install the corresponding dev packages or build them from source(libasound, in my case). Substitute all the -l<lib> dynamic entries with /path/to/lib/lib<lib>.a static entries along with the path to static libraries through -L switch. If all the static libraries are in the system's default folder, say <libfolder>, then after replacement in both Main and src Makefiles, it should look like,
Code: Select all
LIBS = -L/<libfolder> <libfolder>/libSDL_sound.a <libfolder>/libasound.a <libfolder>/libm.a <libfolder>/libdl.a <libfolder>/libpthread.a <libfolder>/libSDL.a <libfolder>/libpng.a <libfolder>/libz.a <libfolder>/libSDL_net.a <libfolder>/liblX11.a <libfolder>/libGL.a
Most may know this, if all the above static libraries (and those that will come later) are copied to dosbox 'src' folder, then the <libfolder> reference is not needed and the entry can be set as to a slighly better looking
Code: Select all
LIBS = libSDL_sound.a libasound.a libm.a libdl.a libpthread.a libSDL.a libpng.a libz.a libSDL_net.a liblX11.a libGL.a.

e) Remove libdl.a libpthread.a & libGL.a entries from the above LIBS list. Reason being libGL.a not readily available in the standard Lubuntu 14.04 installation and compiling Mesa-10.1.0 source package (libgl1-mesa-glx binary) to get it to spit out the libGL.a, proved to be a Pandora's Box in my case(incompatibility of static libraries and DRI and so on, topic for another discussion). Futher -ldl and -lpthread didn't like static linking much.

f) Now the Bad part. Start preparing a dependency chart for all the static libraries and its dependencies and its dependencies and so on till there is none (except the most base level packages like libc). Googling helped me to find out the dependencies, which if not available were installed in the system and the static library (.a) files were copied to the dosbox src folder. Obviously not all dependencies of every package/library need to be installed, only those that are required by dosbox. Further the libasound and pulseaudio packages had to be manually built statically(by passing --enable-static to configure) as the static libraries were not available. In my case the final output was
Code: Select all
LIBS = libSDL_sound.a libFLAC.a libmikmod.a libspeex.a libvorbisfile.a libvorbis.a libogg.a libasound.a libm.a libSDL.a libpulse-simple.a libpulse.a libpulsecommon-4.0.a librt.a libdbus-1.a libjson-c.a libcaca.a libncurses.a libtinfo.a libslang.a libgpm.a libpng.a libz.a libSDL_net.a libXext.a libX11.a libxcb.a libXdmcp.a libXau.a
Order was arrived at by clearing the undefined references function by function (bottom to top approach) on the make output. Edit the LIBS accordingly w.r.t to your system in both Main and src Makefiles, if it differs from mine. Don't know why the configure script is unable to list out all the dependencies right away. Probably if we statically build all the above libraries (spitted out originally by configure) with full features/options(instead of copying from the system folders) and replaced the system libraries(which may not contain all the functions), then it may work, without throwing any 'undefined reference' errors due to missing dependencies and so on.

g) Append the earlier stripped out libraries for dynamic linking such that it reads as,
Code: Select all
LIBS = libSDL_sound.a libFLAC.a libmikmod.a libspeex.a libvorbisfile.a libvorbis.a libogg.a libasound.a libm.a libSDL.a libpulse-simple.a libpulse.a libpulsecommon-4.0.a librt.a libdbus-1.a libjson-c.a libcaca.a libncurses.a libtinfo.a libslang.a libgpm.a libpng.a libz.a libSDL_net.a libXext.a libX11.a libxcb.a libXdmcp.a libXau.a -Wl,-Bdynamic -lGL -l pthread -ldl

h) Finally, the Good part. Run make.

i) Some warnings may come, not sure how deadly. Warning: snd_pcm_hwsync() is deprecated, consider to use snd_pcm_avail(), in my case.

j) Avoid linker option -static (through LDFLAGS) during the final linking as the corresponding built executable errors out as 'no such file or directory', even though the dosbox executable with necessary permissions is present in the src folder. However no error messages were reported during make at the time of linking. Tried the following combinations and checked the dosbox executable with ldd:
1) LDFLAGS = , size of dosbox executable was 18.99 MB
2) LDFLAGS = -static, size of dosbox executable was 18.91 MB (this one has some issue, can't be run, error: no such file or directory)
3) LDFLAGS = -s, size of dosbox executable was 7.35 MB
4) LDFLAGS = -static -s, size of dosbox executable was 7.27 MB (this one has some issue, can't be run, error: no such file or directory)
All the above cases' ldd output was almost the same.
Code: Select all
LDFLAGS = :

   linux-gate.so.1 =>  (0xb7731000)
   libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb76bb000)
   libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb769f000)
   libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7699000)
   libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb75b1000)
   libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7594000)
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73e5000)
   libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb73cd000)
   libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb73b9000)
   libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb73b5000)
   libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb73af000)
   libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb73ac000)
   libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb7278000)
   libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb725f000)
   libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb7259000)
   libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb7255000)
   libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb7251000)
   libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb724a000)
   libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb7227000)
   libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb7224000)
   libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb721e000)
   libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb720e000)
   /lib/ld-linux.so.2 (0xb7732000)
   libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb71c8000)
   libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb71c3000)
   libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb71bc000)

   
LDFLAGS = -static:

   linux-gate.so.1 =>  (0xb7733000)
   libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb76bd000)
   libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb76a1000)
   libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb769b000)
   libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb75b3000)
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7404000)
   libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb73ec000)
   libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb73d9000)
   libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb73d4000)
   libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb73ce000)
   libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb73cb000)
   libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb7297000)
   libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb727f000)
   libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb7278000)
   libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb7274000)
   libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb7270000)
   libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb7269000)
   libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb7247000)
   libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb7243000)
   libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb723d000)
   libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb722d000)
   /usr/lib/libc.so.1 => /lib/ld-linux.so.2 (0xb7734000)
   libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb71e7000)
   libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb71ca000)
   libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb71c5000)
   libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb71be000)

   
LDFLAGS = -s:

   linux-gate.so.1 =>  (0xb7764000)
   libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb76ee000)
   libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb76d2000)
   libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb76cc000)
   libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb75e4000)
   libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb75c7000)
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7418000)
   libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb7400000)
   libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb73ec000)
   libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb73e8000)
   libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb73e2000)
   libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb73df000)
   libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb72ab000)
   libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb7292000)
   libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb728c000)
   libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb7288000)
   libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb7284000)
   libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb727d000)
   libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb725a000)
   libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb7257000)
   libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb7251000)
   libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb7241000)
   /lib/ld-linux.so.2 (0xb7765000)
   libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb71fb000)
   libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb71f6000)
   libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb71ef000)

   
LDFLAGS = -static -s:

    linux-gate.so.1 =>  (0xb76f8000)
   libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb7682000)
   libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7666000)
   libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7660000)
   libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7578000)
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73c9000)
   libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb73b1000)
   libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb739e000)
   libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb7399000)
   libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb7393000)
   libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb7390000)
   libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb725c000)
   libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb7244000)
   libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb723d000)
   libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb7239000)
   libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb7235000)
   libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb722e000)
   libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb720c000)
   libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb7208000)
   libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb7202000)
   libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb71f2000)
   /usr/lib/libc.so.1 => /lib/ld-linux.so.2 (0xb76f9000)
   libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb71ac000)
   libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb718f000)
   libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb718a000)
   libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb7183000)

k) Tested it on my main desktop with same Lubuntu installation without libsdl, libsdl-sound and pulseaudio packages by running Lure of the temptress. Sound was not coming initially, but it was due to my lack of knowledge of setting up midi options in Lubuntu. Had to install timidity and set midiconfig to 128:0 in dosbox.conf for sound to work. Attached only the build built with -s option.

dosbox.zip
Vanilla DOSBox SVN r4006 static 32 bit build with few shared dependencies. Linker option used '-s'
(2.8 MiB) Downloaded 14 times

P.S. There may be a better procedure than the above convoluted one. And the usual warning regarding the attached dosbox executable. Use it at your own risk :lol: as it was compiled only with seemingly logical steps(right or wrong, time and testing only can tell).
Last edited by gandhig on 2017-3-10 @ 20:56, edited 5 times in total.
User avatar
gandhig
Member
 
Posts: 319
Joined: 2014-2-12 @ 08:35

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-3-06 @ 11:41

filipetolhuizen wrote:
Yesterplay80 wrote:Sorry, filipetolhuizen, I still can't reproduce your problem. I tried it on several PCs, with the 2MB and 4MB DOSBox, and everytime 1280x2014 ran better than 1152x864, and 1024x768. With 2MB there's almost no flickering, with 4MB there's absolutely no flickering at all. Exactly what the use GameRanger experienced here: https://www.gog.com/forum/blood_series/ ... esolutions

Which brings me to this question: What version of Blood are you running?

Latest Plasmapack version.

I have version 1.21, that's "One Unit Whole Blood" from GOG.com. Maybe that makes the difference?
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 235
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby filipetolhuizen » 2017-3-07 @ 03:00

Yesterplay80 wrote:
filipetolhuizen wrote:
Yesterplay80 wrote:Sorry, filipetolhuizen, I still can't reproduce your problem. I tried it on several PCs, with the 2MB and 4MB DOSBox, and everytime 1280x2014 ran better than 1152x864, and 1024x768. With 2MB there's almost no flickering, with 4MB there's absolutely no flickering at all. Exactly what the use GameRanger experienced here: https://www.gog.com/forum/blood_series/ ... esolutions

Which brings me to this question: What version of Blood are you running?

Latest Plasmapack version.

I have version 1.21, that's "One Unit Whole Blood" from GOG.com. Maybe that makes the difference?

I think it's the same version. I had the flickering when facing the walls with torches. The animated walls textures made the HUD flicker.
User avatar
filipetolhuizen
Oldbie
 
Posts: 1092
Joined: 2006-10-24 @ 02:25
Location: Curitiba, Brazil

Re: DOSBox ECE (Windows, Linux)

Postby Taiyoumaru » 2017-3-31 @ 00:46

So I decided to take a stab at applying xBRZ to the current ECE source since I really want this scaler for DOSBox. Since I am a complete newcomer at everything that has to do with programming, with basically 0 understanding of the process, I decided to ask Zenju for some pointers here: https://sourceforge.net/p/xbrz/forums/g ... it=25#f2b3 .

While he was basically ok with it, I was hoping he would give me something more basic to work with, I decided to go ahead and at least try. So I downloaded his source archive from here https://sourceforge.net/projects/xbrz/files/DOSBox/ which I believe is the one called "DOSBox_0.74+xBRZ_1.4+Save_States_Source.7z", extracted it and proceeded to find one file called sdl-win32.diff which I'm assuming it's the diff file he was talking about as there was no other inside. Next I installed Mingw as per the wiki's instructions with the SDL libraries. Next I followed the 'compiling dosbox section' from the wiki, but I can't seem to find any ECE dosboxsvn.tgz anywhere so I'm a bit confused as to what to do next. I tried renaming "DOSBox ECE SVN r4007 (Windows source).7z" to "ece.tgz" but Mingw just told me it didn't look like a tar archive. I'd love some help, thanks.
Taiyoumaru
Newbie
 
Posts: 35
Joined: 2013-9-12 @ 13:55

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-4-03 @ 18:58

OK, where do I start...

First: The diff you found has nothing to do with what you're trying to achieve, but enables DIrect Draw output in SDL (enabling output=ddraw in the [sdl] section in the dosbox.conf).

Second: You can't just rename a .7z to .tgz, you don't even have to do that. Just extract the 7z to where it's content is supposed to go.

Third: There is no diff for xBRZ provided, what Zenju meant ist that you have to create a diff yourself, comparing the source code of DOSBox 0.74 and his build and "extracting" the differences as a diff file.

Fourth: A diff based on 0.74 most likely won't work with the current SVN, because a lot of things changed since 0.74. Especially with the source of DOSBox ECE you can bet it won't work, since it contains even more changes compared to vanilla 0.74.

So, I'm sorry to dampen your expectations, but it takes a little more than just downloading a diff and applying it to any given source code to get the features you want.

UPDATE: I had a look into the diff I created out of Zenjus build and the source code of DOSBox 0.74. He obviously removed a lot of tabs in almost every file, so the diff almost affects every single file of the whole source, making it pretty much useless because without coding knowledge you can't tell which changes really are necessary for the scaler to work. :depressed:

Code: Select all
=== Left:  dosbox_074\
=== Right: dosbox_xbrz\
=== Summary: Files(66+14eq+0qm 223neq 24np) Folders(22p 3np)
=== Showing Equal: no
=== Showing Equivalent: no
=== Showing QuickMatch: no
=== Showing Peerless: no
=== Showing Folders: no
=== Showing Errors: yes
=== ================================================================
Files 'include\bios_disk.h' and 'include\bios_disk.h' are different
Files 'include\callback.h' and 'include\callback.h' are different
Files 'include\control.h' and 'include\control.h' are different
Files 'include\cpu.h' and 'include\cpu.h' are different
Files 'include\cross.h' and 'include\cross.h' are different
Files 'include\dma.h' and 'include\dma.h' are different
Files 'include\dos_inc.h' and 'include\dos_inc.h' are different
Files 'include\dos_system.h' and 'include\dos_system.h' are different
Files 'include\dosbox.h' and 'include\dosbox.h' are different
Files 'include\fpu.h' and 'include\fpu.h' are different
Files 'include\hardware.h' and 'include\hardware.h' are different
Files 'include\inout.h' and 'include\inout.h' are different
Files 'include\ipx.h' and 'include\ipx.h' are different
Files 'include\ipxserver.h' and 'include\ipxserver.h' are different
Files 'include\joystick.h' and 'include\joystick.h' are different
Files 'include\keyboard.h' and 'include\keyboard.h' are different
Files 'include\logging.h' and 'include\logging.h' are different
Files 'include\mapper.h' and 'include\mapper.h' are different
Files 'include\mem.h' and 'include\mem.h' are different
Files 'include\mixer.h' and 'include\mixer.h' are different
Files 'include\modules.h' and 'include\modules.h' are different
Files 'include\paging.h' and 'include\paging.h' are different
Files 'include\pic.h' and 'include\pic.h' are different
Files 'include\programs.h' and 'include\programs.h' are different
Files 'include\regs.h' and 'include\regs.h' are different
Files 'include\render.h' and 'include\render.h' are different
Files 'include\serialport.h' and 'include\serialport.h' are different
Files 'include\setup.h' and 'include\setup.h' are different
Files 'include\shell.h' and 'include\shell.h' are different
Files 'include\vga.h' and 'include\vga.h' are different
Files 'include\video.h' and 'include\video.h' are different
Files 'src\cpu\callback.cpp' and 'src\cpu\callback.cpp' are different
Files 'src\cpu\core_dyn_x86.cpp' and 'src\cpu\core_dyn_x86.cpp' are different
Files 'src\cpu\core_dyn_x86\cache.h' and 'src\cpu\core_dyn_x86\cache.h' are different
Files 'src\cpu\core_dyn_x86\decoder.h' and 'src\cpu\core_dyn_x86\decoder.h' are different
Files 'src\cpu\core_dyn_x86\dyn_fpu.h' and 'src\cpu\core_dyn_x86\dyn_fpu.h' are different
Files 'src\cpu\core_dyn_x86\dyn_fpu_dh.h' and 'src\cpu\core_dyn_x86\dyn_fpu_dh.h' are different
Files 'src\cpu\core_dyn_x86\helpers.h' and 'src\cpu\core_dyn_x86\helpers.h' are different
Files 'src\cpu\core_dyn_x86\risc_x86.h' and 'src\cpu\core_dyn_x86\risc_x86.h' are different
Files 'src\cpu\core_dyn_x86\string.h' and 'src\cpu\core_dyn_x86\string.h' are different
Files 'src\cpu\core_dynrec.cpp' and 'src\cpu\core_dynrec.cpp' are different
Files 'src\cpu\core_dynrec\cache.h' and 'src\cpu\core_dynrec\cache.h' are different
Files 'src\cpu\core_dynrec\decoder.h' and 'src\cpu\core_dynrec\decoder.h' are different
Files 'src\cpu\core_dynrec\decoder_basic.h' and 'src\cpu\core_dynrec\decoder_basic.h' are different
Files 'src\cpu\core_dynrec\decoder_opcodes.h' and 'src\cpu\core_dynrec\decoder_opcodes.h' are different
Files 'src\cpu\core_dynrec\dyn_fpu.h' and 'src\cpu\core_dynrec\dyn_fpu.h' are different
Files 'src\cpu\core_dynrec\operators.h' and 'src\cpu\core_dynrec\operators.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-common.h' and 'src\cpu\core_dynrec\risc_armv4le-common.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-o3.h' and 'src\cpu\core_dynrec\risc_armv4le-o3.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-s3.h' and 'src\cpu\core_dynrec\risc_armv4le-s3.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-thumb-iw.h' and 'src\cpu\core_dynrec\risc_armv4le-thumb-iw.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-thumb-niw.h' and 'src\cpu\core_dynrec\risc_armv4le-thumb-niw.h' are different
Files 'src\cpu\core_dynrec\risc_armv4le-thumb.h' and 'src\cpu\core_dynrec\risc_armv4le-thumb.h' are different
Files 'src\cpu\core_dynrec\risc_mipsel32.h' and 'src\cpu\core_dynrec\risc_mipsel32.h' are different
Files 'src\cpu\core_dynrec\risc_x64.h' and 'src\cpu\core_dynrec\risc_x64.h' are different
Files 'src\cpu\core_dynrec\risc_x86.h' and 'src\cpu\core_dynrec\risc_x86.h' are different
Files 'src\cpu\core_full.cpp' and 'src\cpu\core_full.cpp' are different
Files 'src\cpu\core_full\ea_lookup.h' and 'src\cpu\core_full\ea_lookup.h' are different
Files 'src\cpu\core_full\load.h' and 'src\cpu\core_full\load.h' are different
Files 'src\cpu\core_full\loadwrite.h' and 'src\cpu\core_full\loadwrite.h' are different
Files 'src\cpu\core_full\op.h' and 'src\cpu\core_full\op.h' are different
Files 'src\cpu\core_full\optable.h' and 'src\cpu\core_full\optable.h' are different
Files 'src\cpu\core_full\save.h' and 'src\cpu\core_full\save.h' are different
Files 'src\cpu\core_full\string.h' and 'src\cpu\core_full\string.h' are different
Files 'src\cpu\core_full\support.h' and 'src\cpu\core_full\support.h' are different
Files 'src\cpu\core_normal.cpp' and 'src\cpu\core_normal.cpp' are different
Files 'src\cpu\core_normal\prefix_0f.h' and 'src\cpu\core_normal\prefix_0f.h' are different
Files 'src\cpu\core_normal\prefix_66.h' and 'src\cpu\core_normal\prefix_66.h' are different
Files 'src\cpu\core_normal\prefix_66_0f.h' and 'src\cpu\core_normal\prefix_66_0f.h' are different
Files 'src\cpu\core_normal\prefix_none.h' and 'src\cpu\core_normal\prefix_none.h' are different
Files 'src\cpu\core_normal\string.h' and 'src\cpu\core_normal\string.h' are different
Files 'src\cpu\core_normal\support.h' and 'src\cpu\core_normal\support.h' are different
Files 'src\cpu\core_normal\table_ea.h' and 'src\cpu\core_normal\table_ea.h' are different
Files 'src\cpu\core_prefetch.cpp' and 'src\cpu\core_prefetch.cpp' are different
Files 'src\cpu\core_simple.cpp' and 'src\cpu\core_simple.cpp' are different
Files 'src\cpu\cpu.cpp' and 'src\cpu\cpu.cpp' are different
Files 'src\cpu\flags.cpp' and 'src\cpu\flags.cpp' are different
Files 'src\cpu\lazyflags.h' and 'src\cpu\lazyflags.h' are different
Files 'src\cpu\modrm.cpp' and 'src\cpu\modrm.cpp' are different
Files 'src\cpu\paging.cpp' and 'src\cpu\paging.cpp' are different
Files 'src\dos\cdrom.cpp' and 'src\dos\cdrom.cpp' are different
Files 'src\dos\cdrom.h' and 'src\dos\cdrom.h' are different
Files 'src\dos\cdrom_aspi_win32.cpp' and 'src\dos\cdrom_aspi_win32.cpp' are different
Files 'src\dos\cdrom_image.cpp' and 'src\dos\cdrom_image.cpp' are different
Files 'src\dos\cdrom_ioctl_linux.cpp' and 'src\dos\cdrom_ioctl_linux.cpp' are different
Files 'src\dos\cdrom_ioctl_os2.cpp' and 'src\dos\cdrom_ioctl_os2.cpp' are different
Files 'src\dos\cdrom_ioctl_win32.cpp' and 'src\dos\cdrom_ioctl_win32.cpp' are different
Files 'src\dos\dev_con.h' and 'src\dos\dev_con.h' are different
Files 'src\dos\dos.cpp' and 'src\dos\dos.cpp' are different
Files 'src\dos\dos_classes.cpp' and 'src\dos\dos_classes.cpp' are different
Files 'src\dos\dos_codepages.h' and 'src\dos\dos_codepages.h' are different
Files 'src\dos\dos_devices.cpp' and 'src\dos\dos_devices.cpp' are different
Files 'src\dos\dos_execute.cpp' and 'src\dos\dos_execute.cpp' are different
Files 'src\dos\dos_files.cpp' and 'src\dos\dos_files.cpp' are different
Files 'src\dos\dos_ioctl.cpp' and 'src\dos\dos_ioctl.cpp' are different
Files 'src\dos\dos_keyboard_layout.cpp' and 'src\dos\dos_keyboard_layout.cpp' are different
Files 'src\dos\dos_keyboard_layout_data.h' and 'src\dos\dos_keyboard_layout_data.h' are different
Files 'src\dos\dos_memory.cpp' and 'src\dos\dos_memory.cpp' are different
Files 'src\dos\dos_misc.cpp' and 'src\dos\dos_misc.cpp' are different
Files 'src\dos\dos_mscdex.cpp' and 'src\dos\dos_mscdex.cpp' are different
Files 'src\dos\dos_programs.cpp' and 'src\dos\dos_programs.cpp' are different
Files 'src\dos\dos_tables.cpp' and 'src\dos\dos_tables.cpp' are different
Files 'src\dos\drive_cache.cpp' and 'src\dos\drive_cache.cpp' are different
Files 'src\dos\drive_fat.cpp' and 'src\dos\drive_fat.cpp' are different
Files 'src\dos\drive_iso.cpp' and 'src\dos\drive_iso.cpp' are different
Files 'src\dos\drive_local.cpp' and 'src\dos\drive_local.cpp' are different
Files 'src\dos\drive_virtual.cpp' and 'src\dos\drive_virtual.cpp' are different
Files 'src\dos\drives.cpp' and 'src\dos\drives.cpp' are different
Files 'src\dos\drives.h' and 'src\dos\drives.h' are different
Files 'src\dos\scsidefs.h' and 'src\dos\scsidefs.h' are different
Files 'src\dos\wnaspi32.h' and 'src\dos\wnaspi32.h' are different
Files 'src\dosbox.cpp' and 'src\dosbox.cpp' are different
Files 'src\dosbox.ico' and 'src\dosbox.ico' are different
Files 'src\fpu\fpu.cpp' and 'src\fpu\fpu.cpp' are different
Files 'src\fpu\fpu_instructions.h' and 'src\fpu\fpu_instructions.h' are different
Files 'src\fpu\fpu_instructions_x86.h' and 'src\fpu\fpu_instructions_x86.h' are different
Files 'src\gui\dosbox_splash.h' and 'src\gui\dosbox_splash.h' are different
Files 'src\gui\midi.cpp' and 'src\gui\midi.cpp' are different
Files 'src\gui\midi_alsa.h' and 'src\gui\midi_alsa.h' are different
Files 'src\gui\midi_coreaudio.h' and 'src\gui\midi_coreaudio.h' are different
Files 'src\gui\midi_coremidi.h' and 'src\gui\midi_coremidi.h' are different
Files 'src\gui\midi_oss.h' and 'src\gui\midi_oss.h' are different
Files 'src\gui\midi_win32.h' and 'src\gui\midi_win32.h' are different
Files 'src\gui\render.cpp' and 'src\gui\render.cpp' are different
Files 'src\gui\render_loops.h' and 'src\gui\render_loops.h' are different
Files 'src\gui\render_scalers.cpp' and 'src\gui\render_scalers.cpp' are different
Files 'src\gui\render_scalers.h' and 'src\gui\render_scalers.h' are different
Files 'src\gui\render_simple.h' and 'src\gui\render_simple.h' are different
Files 'src\gui\render_templates.h' and 'src\gui\render_templates.h' are different
Files 'src\gui\render_templates_hq.h' and 'src\gui\render_templates_hq.h' are different
Files 'src\gui\render_templates_hq2x.h' and 'src\gui\render_templates_hq2x.h' are different
Files 'src\gui\render_templates_hq3x.h' and 'src\gui\render_templates_hq3x.h' are different
Files 'src\gui\render_templates_sai.h' and 'src\gui\render_templates_sai.h' are different
Files 'src\gui\sdl_gui.cpp' and 'src\gui\sdl_gui.cpp' are different
Files 'src\gui\sdl_mapper.cpp' and 'src\gui\sdl_mapper.cpp' are different
Files 'src\gui\sdlmain.cpp' and 'src\gui\sdlmain.cpp' are different
Files 'src\hardware\adlib.cpp' and 'src\hardware\adlib.cpp' are different
Files 'src\hardware\adlib.h' and 'src\hardware\adlib.h' are different
Files 'src\hardware\cmos.cpp' and 'src\hardware\cmos.cpp' are different
Files 'src\hardware\dbopl.cpp' and 'src\hardware\dbopl.cpp' are different
Files 'src\hardware\dbopl.h' and 'src\hardware\dbopl.h' are different
Files 'src\hardware\disney.cpp' and 'src\hardware\disney.cpp' are different
Files 'src\hardware\dma.cpp' and 'src\hardware\dma.cpp' are different
Files 'src\hardware\gameblaster.cpp' and 'src\hardware\gameblaster.cpp' are different
Files 'src\hardware\gus.cpp' and 'src\hardware\gus.cpp' are different
Files 'src\hardware\hardware.cpp' and 'src\hardware\hardware.cpp' are different
Files 'src\hardware\iohandler.cpp' and 'src\hardware\iohandler.cpp' are different
Files 'src\hardware\ipx.cpp' and 'src\hardware\ipx.cpp' are different
Files 'src\hardware\ipxserver.cpp' and 'src\hardware\ipxserver.cpp' are different
Files 'src\hardware\joystick.cpp' and 'src\hardware\joystick.cpp' are different
Files 'src\hardware\keyboard.cpp' and 'src\hardware\keyboard.cpp' are different
Files 'src\hardware\memory.cpp' and 'src\hardware\memory.cpp' are different
Files 'src\hardware\mixer.cpp' and 'src\hardware\mixer.cpp' are different
Files 'src\hardware\mpu401.cpp' and 'src\hardware\mpu401.cpp' are different
Files 'src\hardware\opl.cpp' and 'src\hardware\opl.cpp' are different
Files 'src\hardware\opl.h' and 'src\hardware\opl.h' are different
Files 'src\hardware\pcspeaker.cpp' and 'src\hardware\pcspeaker.cpp' are different
Files 'src\hardware\pic.cpp' and 'src\hardware\pic.cpp' are different
Files 'src\hardware\sblaster.cpp' and 'src\hardware\sblaster.cpp' are different
Files 'src\hardware\serialport\directserial.cpp' and 'src\hardware\serialport\directserial.cpp' are different
Files 'src\hardware\serialport\directserial.h' and 'src\hardware\serialport\directserial.h' are different
Files 'src\hardware\serialport\libserial.cpp' and 'src\hardware\serialport\libserial.cpp' are different
Files 'src\hardware\serialport\misc_util.cpp' and 'src\hardware\serialport\misc_util.cpp' are different
Files 'src\hardware\serialport\misc_util.h' and 'src\hardware\serialport\misc_util.h' are different
Files 'src\hardware\serialport\nullmodem.cpp' and 'src\hardware\serialport\nullmodem.cpp' are different
Files 'src\hardware\serialport\nullmodem.h' and 'src\hardware\serialport\nullmodem.h' are different
Files 'src\hardware\serialport\serialdummy.cpp' and 'src\hardware\serialport\serialdummy.cpp' are different
Files 'src\hardware\serialport\serialdummy.h' and 'src\hardware\serialport\serialdummy.h' are different
Files 'src\hardware\serialport\serialport.cpp' and 'src\hardware\serialport\serialport.cpp' are different
Files 'src\hardware\serialport\softmodem.cpp' and 'src\hardware\serialport\softmodem.cpp' are different
Files 'src\hardware\serialport\softmodem.h' and 'src\hardware\serialport\softmodem.h' are different
Files 'src\hardware\tandy_sound.cpp' and 'src\hardware\tandy_sound.cpp' are different
Files 'src\hardware\timer.cpp' and 'src\hardware\timer.cpp' are different
Files 'src\hardware\vga.cpp' and 'src\hardware\vga.cpp' are different
Files 'src\hardware\vga_attr.cpp' and 'src\hardware\vga_attr.cpp' are different
Files 'src\hardware\vga_crtc.cpp' and 'src\hardware\vga_crtc.cpp' are different
Files 'src\hardware\vga_dac.cpp' and 'src\hardware\vga_dac.cpp' are different
Files 'src\hardware\vga_draw.cpp' and 'src\hardware\vga_draw.cpp' are different
Files 'src\hardware\vga_gfx.cpp' and 'src\hardware\vga_gfx.cpp' are different
Files 'src\hardware\vga_memory.cpp' and 'src\hardware\vga_memory.cpp' are different
Files 'src\hardware\vga_misc.cpp' and 'src\hardware\vga_misc.cpp' are different
Files 'src\hardware\vga_other.cpp' and 'src\hardware\vga_other.cpp' are different
Files 'src\hardware\vga_paradise.cpp' and 'src\hardware\vga_paradise.cpp' are different
Files 'src\hardware\vga_s3.cpp' and 'src\hardware\vga_s3.cpp' are different
Files 'src\hardware\vga_seq.cpp' and 'src\hardware\vga_seq.cpp' are different
Files 'src\hardware\vga_tseng.cpp' and 'src\hardware\vga_tseng.cpp' are different
Files 'src\hardware\vga_xga.cpp' and 'src\hardware\vga_xga.cpp' are different
Files 'src\ints\bios.cpp' and 'src\ints\bios.cpp' are different
Files 'src\ints\bios_disk.cpp' and 'src\ints\bios_disk.cpp' are different
Files 'src\ints\bios_keyboard.cpp' and 'src\ints\bios_keyboard.cpp' are different
Files 'src\ints\ems.cpp' and 'src\ints\ems.cpp' are different
Files 'src\ints\int10.cpp' and 'src\ints\int10.cpp' are different
Files 'src\ints\int10.h' and 'src\ints\int10.h' are different
Files 'src\ints\int10_char.cpp' and 'src\ints\int10_char.cpp' are different
Files 'src\ints\int10_memory.cpp' and 'src\ints\int10_memory.cpp' are different
Files 'src\ints\int10_misc.cpp' and 'src\ints\int10_misc.cpp' are different
Files 'src\ints\int10_modes.cpp' and 'src\ints\int10_modes.cpp' are different
Files 'src\ints\int10_pal.cpp' and 'src\ints\int10_pal.cpp' are different
Files 'src\ints\int10_put_pixel.cpp' and 'src\ints\int10_put_pixel.cpp' are different
Files 'src\ints\int10_vesa.cpp' and 'src\ints\int10_vesa.cpp' are different
Files 'src\ints\int10_video_state.cpp' and 'src\ints\int10_video_state.cpp' are different
Files 'src\ints\int10_vptable.cpp' and 'src\ints\int10_vptable.cpp' are different
Files 'src\ints\mouse.cpp' and 'src\ints\mouse.cpp' are different
Files 'src\ints\xms.cpp' and 'src\ints\xms.cpp' are different
Files 'src\libs\gui_tk\gui_tk.cpp' and 'src\libs\gui_tk\gui_tk.cpp' are different
Files 'src\libs\gui_tk\gui_tk.h' and 'src\libs\gui_tk\gui_tk.h' are different
Files 'src\libs\zmbv\zmbv.cpp' and 'src\libs\zmbv\zmbv.cpp' are different
Files 'src\libs\zmbv\zmbv.h' and 'src\libs\zmbv\zmbv.h' are different
Files 'src\Makefile.am' and 'src\Makefile.am' are different
Files 'src\Makefile.in' and 'src\Makefile.in' are different
Files 'src\misc\cross.cpp' and 'src\misc\cross.cpp' are different
Files 'src\misc\messages.cpp' and 'src\misc\messages.cpp' are different
Files 'src\misc\programs.cpp' and 'src\misc\programs.cpp' are different
Files 'src\misc\setup.cpp' and 'src\misc\setup.cpp' are different
Files 'src\misc\support.cpp' and 'src\misc\support.cpp' are different
Files 'src\platform\visualc\ntddcdrm.h' and 'src\platform\visualc\ntddcdrm.h' are different
Files 'src\platform\visualc\ntddscsi.h' and 'src\platform\visualc\ntddscsi.h' are different
Files 'src\shell\shell.cpp' and 'src\shell\shell.cpp' are different
Files 'src\shell\shell_batch.cpp' and 'src\shell\shell_batch.cpp' are different
Files 'src\shell\shell_cmds.cpp' and 'src\shell\shell_cmds.cpp' are different
Files 'src\shell\shell_misc.cpp' and 'src\shell\shell_misc.cpp' are different
Files 'src\winres.rc' and 'src\winres.rc' are different
Files 'visualc_net\dosbox.sln' and 'visualc_net\dosbox.sln' are different
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 235
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-4-08 @ 09:08

I made a small change to ECE: It now not only shows "DOSBox SVN" but the current revision of the code, so as of now "DOSBox SVN r4007". While this might seem a purely cosmetic change at first, it also introduces a new feature and a new necessity as well: The default configuration file now is named the same way, so instead of just having a "dosbox-SVN.conf" in your local appdata directory, you will now find a file called "dosbox-SVN r4007.conf" there. So, if you're using the default configuration file, from now on you either have to rename it so it matches the revision number the .exe file has each time a new SVN gets released (not very often), or you have to set everything in the new file again. The benefit is, you can now have different default configuration files for each revision.

DOSBox showing the current revision.jpg


different default configuration files.JPG


What do you think? Useful feature, nice to have or pure nuisance?
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 235
Joined: 2016-2-23 @ 11:02
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Dominus » 2017-4-08 @ 09:57

It's a good idea to show it in the screen (for OS X, I show the revision number in the disk image name once you open it in Finder).
If I were on Windows and were using your build I'd not like the revision number in the config file. Especially with the sheer amount of committs to upstream DOSBox ;)
Seriously I don't see the point of this. Appending ECE to the the config name would make sense however to differ between plain SVN and your build. After all if people want to use different configs there is a command for that.
BUT I'm not on Windows and I'm not using your build so... my opinion is not the one to really listen to ;)
User avatar
Dominus
DOSBox Moderator
 
Posts: 7267
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: DOSBox ECE (Windows, Linux)

Postby collector » 2017-4-08 @ 15:58

The revision number in the titlebar makes sense. It would make it easier when testing for regressions between builds. One problem with the conf name having the revision in it would mean that each new revision would write a new conf. If you regularly try each new revision you will end up having a lot of old confs cluttering up the %LocalAppData%\DOSBox directory. I agree that adding ECE to the name makes sense to keep it separate from a plain vanilla SVN build's conf. If a new build requires a change to the conf you can just tell people that they need to update the conf.
User avatar
collector
l33t
 
Posts: 3967
Joined: 2003-1-15 @ 10:39

Re: DOSBox ECE (Windows, Linux)

Postby profo » 2017-4-08 @ 17:07

Hi
i would prefer the conf file stored in the dosbox dir. To increase portability and to avoid confusion for new users.

Best regards
prof
profo
Newbie
 
Posts: 5
Joined: 2017-4-08 @ 17:01
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Dominus » 2017-4-08 @ 17:37

1. Modern Windows versions do not support changing files in the Program Files subfolders ( the default install location of DOSBox)
2. to avoid confusion users should read the documentation
3. to avoid confusion non-plain DOSBox builds shouldn't use a different location for the config than plain DOSBox
User avatar
Dominus
DOSBox Moderator
 
Posts: 7267
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: DOSBox ECE (Windows, Linux)

Postby profo » 2017-4-08 @ 18:11

I hear you, but Dosbox ECE works without installation. If we set aside the conf it is already fully portable (am i right here?).
So there is no need to use the "program files" folder. I like my Dosbox portable, everything stored on a external disk so i can use it on different computers. :)
profo
Newbie
 
Posts: 5
Joined: 2017-4-08 @ 17:01
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Dominus » 2017-4-08 @ 18:26

But you can *always* use Dosbox and clones in portable mode and always create a new default config if you need it. It's not changing anything in regard to the current status quo.
Changing the behavior of a clone is not user friendly.
User avatar
Dominus
DOSBox Moderator
 
Posts: 7267
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: DOSBox ECE (Windows, Linux)

Postby profo » 2017-4-08 @ 18:54

This is right.
But why is the dosbox.conf stored in the program dir preffered then?
If you start dosbox.exe without the -conf or -userconf parameter it uses the dosbox.conf from its starting dir if there is one, even if it also exists in %local appdata% and that contains other values.
I like it that way... and use it to my advantage with Dosbox ECE

regards
prof
profo
Newbie
 
Posts: 5
Joined: 2017-4-08 @ 17:01
Location: Germany

Re: DOSBox ECE (Windows, Linux)

Postby Dominus » 2017-4-08 @ 19:28

I think this is because a dosbox.conf in the starting folder is preferred, not necessarily the program folder. That's done so you can have a config in the game folder, start Dosbox from that and have the game specific settings applied.
User avatar
Dominus
DOSBox Moderator
 
Posts: 7267
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: DOSBox ECE (Windows, Linux)

Postby Yesterplay80 » 2017-4-08 @ 20:29

collector wrote:The revision number in the titlebar makes sense. ... I agree that adding ECE to the name makes sense to keep it separate from a plain vanilla SVN build's conf.

That's a really good idea, thank you both Dominus and collector! I changed my build accordingly, it now shows the revision number in the title bar only and creates a dosbox-ECE.conf.
My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)
User avatar
Yesterplay80
Member
 
Posts: 235
Joined: 2016-2-23 @ 11:02
Location: Germany

PreviousNext

Return to DOSBox Development

Who is online

Users browsing this forum: No registered users and 1 guest