VOGONS


DOSBox ECE (for Windows & Linux)

Topic actions

Reply 1480 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
Crysli wrote on 2022-06-12, 12:21:

Not sure if I have to post this here or in the PC speaker patch thread..
I found that in F-15 Strike Eagle II and F-117A the speech played when you start/complete a mission is corrupted and I think it's caused by that patch.
Sounds perfectly on vanilla DOSBox.

@Crysli

I tried this in Windows with DOSboxECE r4479 and DOSbox 0.74-3. While they do sound a little different - "Strike Eagle, cleared for take off" is clear in each. There is a high pitched frequency over top of both of them, like a squeal during the sentence; but you can hear the words relatively well. Do you have a reference audio of what you are hearing and what you expect?

My Settings:

[speaker]
pcspeaker = true
pcrate = 44100

Reply 1481 of 1565, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
realnc wrote on 2022-06-13, 18:08:

But the arm32 ("armhf") build unfortunately now lacks a dynamic CPU core. I will need to fix that.

The issue is that configure.ac only recognizes armv6l, armv7l and aarch64. However, host_cpu in this case is armv8l. That's still 32-bit ARM and the ARMV7LE dynamic core should be used.

I fixed it with:

--- a/configure.ac
+++ b/configure.ac
@@ -307,7 +307,7 @@ case "$host_cpu" in
c_targetcpu="m68k"
c_unalignedmemory=yes
;;
- armv7l)
+ armv7l | armv8l)
AC_DEFINE(C_TARGETCPU,ARMV7LE)
AC_MSG_RESULT(ARMv7 Little Endian)
c_targetcpu="arm"

The 32-bit ARM build should now be working fine.

Maybe this can be applied to SVN as well so it doesn't have to be carried as a patch in ECE?

Reply 1482 of 1565, by Yesterplay80

User metadata
Rank Oldbie
Rank
Oldbie
morphinejh wrote on 2022-06-11, 03:20:

I believe there is an error with this code. I didn't realize until I was comparing r4479 to r4477. The code in that post is doing a direct comparison between two character arrays (const char*) using ==. This is undefined behavior as it is really just comparing the value of two pointers and not the string itself. If they were C++ string types it would work, but they appear to be simple character arrays.

...

Thanks for pointing that out, I'll try adapting those changes (hopefully) in one of the next updates, if time permits it.

My full-featured DOSBox SVN builds for Windows & Linux: Vanilla DOSBox and DOSBox ECE (Google Drive Mirror)

Reply 1483 of 1565, by 7F20

User metadata
Rank Member
Rank
Member
realnc wrote on 2022-06-13, 19:22:
The issue is that configure.ac only recognizes armv6l, armv7l and aarch64. However, host_cpu in this case is armv8l. That's stil […]
Show full quote
realnc wrote on 2022-06-13, 18:08:

But the arm32 ("armhf") build unfortunately now lacks a dynamic CPU core. I will need to fix that.

The issue is that configure.ac only recognizes armv6l, armv7l and aarch64. However, host_cpu in this case is armv8l. That's still 32-bit ARM and the ARMV7LE dynamic core should be used.

I fixed it with:

--- a/configure.ac
+++ b/configure.ac
@@ -307,7 +307,7 @@ case "$host_cpu" in
c_targetcpu="m68k"
c_unalignedmemory=yes
;;
- armv7l)
+ armv7l | armv8l)
AC_DEFINE(C_TARGETCPU,ARMV7LE)
AC_MSG_RESULT(ARMv7 Little Endian)
c_targetcpu="arm"

The 32-bit ARM build should now be working fine.

Maybe this can be applied to SVN as well so it doesn't have to be carried as a patch in ECE?

Why can't you just use armv8l? I did so when I last compiled Retroarch on a Raspberry Pi 4 and it worked just fine and I can use dosbox core in that with dynamic core works fine for the past like 3 years now.

Reply 1484 of 1565, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
7F20 wrote on 2022-07-20, 15:39:

Why can't you just use armv8l? I did so when I last compiled Retroarch on a Raspberry Pi 4 and it worked just fine and I can use dosbox core in that with dynamic core works fine for the past like 3 years now.

This is not about libretro dosbox-core, it about vanilla dosbox . dosbox-core already uses armv8l.

Reply 1485 of 1565, by vorob

User metadata
Rank Oldbie
Rank
Oldbie

Guys, i've tried recent build of dosbox ece and pixel perfect shader. It's not working. In command line i'm getting lots of these errors:

https://pastebin.com/9AFxAgSZ

Any idea? Shader use smth ECE doesn't support?

Reply 1486 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
vorob wrote on 2022-08-01, 19:27:

Guys, i've tried recent build of dosbox ece and pixel perfect shader. It's not working. In command line i'm getting lots of these errors:

https://pastebin.com/9AFxAgSZ

Any idea? Shader use smth ECE doesn't support?

I don't have any problems using pixel perfect shaders from here:
https://github.com/tyrells/dosbox-svn-shaders … r/interpolation

If I had to guess your configuration file is pointing to an incorrect file, or incorrectly formatted file. It is throwing syntax errors for "string literals". Can you point us to the shader file you are using?

Reply 1487 of 1565, by abandon2022

User metadata
Rank Newbie
Rank
Newbie

Hey to all.
I upgraded my system to Linux Mint 21 and now I cannot compile DOSBox ECE.
The autoconf gives me the following error:

configure.ac:31: warning: The macro `AC_TRY_RUN' is obsolete.
configure.ac:31: You should run autoupdate.
./lib/autoconf/general.m4 AC_TRY_RUN is expanded from...
acinclude.m4:4: AM_PATH_SDL is expanded from...
configure.ac:31: the top level
configure.ac:31: warning: The macro `AC_TRY_LINK' is obsolete.
configure.ac:31: You should run autoupdate.
./lib/autoconf/general.m4 AC_TRY_LINK is expanded from...
acinclude.m4:4: AM_PATH_SDL is expanded from...
configure.ac:31: the top level
configure.ac:228: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:228: You should run autoupdate.
./lib/autoconf/c.m4:72: AC_LANG_C is expanded from...
acinclude.m4:177: AM_PATH_ALSA is expanded from...
configure.ac:228: the top level
configure.ac:228: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:228: You should run autoupdate.
./lib/autoconf/general.m4 AC_TRY_COMPILE is expanded from...
acinclude.m4:177: AM_PATH_ALSA is expanded from...
configure.ac:228: the top level

Any suggestions will be welcome. Thanks!

Reply 1489 of 1565, by abandon2022

User metadata
Rank Newbie
Rank
Newbie

Thanks realnc. How can I specify a custom config file to use on starup?

Yesterplay80, is it possible to compile for 64-bit instead for 32-bit, that does not run on 64-bit distros?

Reply 1490 of 1565, by realnc

User metadata
Rank Oldbie
Rank
Oldbie
abandon2022 wrote on 2022-08-21, 11:30:

Thanks realnc. How can I specify a custom config file to use on starup?

The same command line parameters (like -conf and -usercond) still work.

Reply 1491 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
abandon2022 wrote on 2022-08-21, 07:48:

configure.ac:31: You should run autoupdate
....

Alternatively, if you really want to compile yourself and get rid of the obsolete messages, you can run 'autoupdate'. It does a good job of correcting the obsolescence.

Reply 1492 of 1565, by abandon2022

User metadata
Rank Newbie
Rank
Newbie

Thanks morphinejh. The message is after running "autoupdate".

I ran "configure" despite the error message. It completed succesfully. But when I run "make" I get the following error:

./configure: line 3415: syntax error near unexpected token `LT_INIT,win32-dll'
./configure: line 3415: `_LT_SET_OPTION(LT_INIT,win32-dll)'
make[5]: *** [Makefile:110: speexdsp/Makefile] Error 2
make[5]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs/decoders/internal'
make[4]: *** [Makefile:798: internal/include/speex/speex_resampler.h] Error 2
make[4]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs/decoders'
make[3]: *** [Makefile:331: all-recursive] Error 1
make[3]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs'
make[2]: *** [Makefile:450: all-recursive] Error 1
make[2]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src'
make[1]: *** [Makefile:396: all-recursive] Error 1
make[1]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox'
make: *** [Makefile:337: all] Error 2

Reply 1493 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
abandon2022 wrote on 2022-08-25, 07:45:
Thanks morphinejh. The message is after running "autoupdate". […]
Show full quote

Thanks morphinejh. The message is after running "autoupdate".

I ran "configure" despite the error message. It completed succesfully. But when I run "make" I get the following error:

./configure: line 3415: syntax error near unexpected token `LT_INIT,win32-dll'
./configure: line 3415: `_LT_SET_OPTION(LT_INIT,win32-dll)'
make[5]: *** [Makefile:110: speexdsp/Makefile] Error 2
make[5]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs/decoders/internal'
make[4]: *** [Makefile:798: internal/include/speex/speex_resampler.h] Error 2
make[4]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs/decoders'
make[3]: *** [Makefile:331: all-recursive] Error 1
make[3]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src/libs'
make[2]: *** [Makefile:450: all-recursive] Error 1
make[2]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox/src'
make[1]: *** [Makefile:396: all-recursive] Error 1
make[1]: Leaving directory '/media/crucifier/Seagate/Downloads/dosbox'
make: *** [Makefile:337: all] Error 2

Interesting, I would not have expected an error near a 'win32' call. I also did not have the issue with autoupdate using Ubuntu 22.04. I suspect the output of ./configure has some more information in it that would help. If I get some time this weekend I'll try to replicate this issue on a Linux Mint VM.

In the mean time the AppImage quoted earlier works great! If you just want to get DosBoxECE working quickly use that.

You can also use that source code as a comparison tool or to directly compile it https://github.com/realnc/dosbox-ece. I also have a different flavor of DosboxECE you can look over as a comparison https://github.com/morphinejh/dosboxece-opl/wiki/Compiling, I have some content on the Wiki that may help you on any Linux distribution.

Reply 1494 of 1565, by LukasThyWalls

User metadata
Rank Newbie
Rank
Newbie

Hello!

I was doing some testing with Tex Murphy: Mean Streets, and using different DOSBox versions i realized that this game sound is broken in DOSBox ECE.

I have the GOG version, that comes bundled with DOSBox 0.74, but i also play a bit with DOSBox 0.74.3 and DOSBox-X 2022.08.0, and it plays the sound correctly. However, with DOSBox ECE r4479 AppImage doesn't (all in my Linux laptop, btw).

With DOSBox ECE, at the same time as the sound/music, it plays a background beep, with an high pitch. When is no sound there isn't the beep, it only plays at the same time as the sound/music.

If you don't know, the particularity of the sound/music in this game is one of the few that uses RealSound, that is a way to play PCM Audio Playback on the PC Speaker, which is a bit impressive for what it is.

Maybe is only me, although everything else plays fine and i didn't touch the PC Speaker configuration in the conf.

Thanks!

Reply 1495 of 1565, by villeneuve

User metadata
Rank Member
Rank
Member

You could launch DOSBox ECE via terminal and have a look at what kind of (error-)messages are put out when launching. When I tried the DOSBox ECE on Linux this week it should an issue with PC speaker although I can't remember what it was but the game I played worked fine with PC speaker although it has to be said it only has *very* few *very* basic sound effects.

Reply 1496 of 1565, by abandon2022

User metadata
Rank Newbie
Rank
Newbie

Thanks morphinejh for your time.

I went to "https://github.com/morphinejh/dosboxece-opl/wiki/Compiling" and I saw mentioned the library "libieee1284-dev".
I installed it and the compilation completed (although I suspect it was not this specific library, I have installed a lot of software these days).

The only problem is I don't have fluidsynth support, because Mint 21 has upgraded to fluidsynth3.

Reply 1497 of 1565, by LukasThyWalls

User metadata
Rank Newbie
Rank
Newbie
villeneuve wrote on 2022-08-26, 08:32:

You could launch DOSBox ECE via terminal and have a look at what kind of (error-)messages are put out when launching. When I tried the DOSBox ECE on Linux this week it should an issue with PC speaker although I can't remember what it was but the game I played worked fine with PC speaker although it has to be said it only has *very* few *very* basic sound effects.

Yeah, just started DOSBox ECE throw terminal and i see a bunch of errors related to PC Speaker just when i started it, without starting the game yet:

PC speaker output buffer length: 145
mixer callback wants too many samples from pc speaker emulator: 1103
mixer callback wants too many samples from pc speaker emulator: 957
mixer callback wants too many samples from pc speaker emulator: 812
mixer callback wants too many samples from pc speaker emulator: 667
mixer callback wants too many samples from pc speaker emulator: 522
mixer callback wants too many samples from pc speaker emulator: 377
mixer callback wants too many samples from pc speaker emulator: 232

However, i tested Prince of Persia and Lotus 3 with PC Speaker and doesn't do anything like that. Maybe i could record it if it's useful...

Reply 1498 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
abandon2022 wrote on 2022-08-26, 16:39:
Thanks morphinejh for your time. […]
Show full quote

Thanks morphinejh for your time.

I went to "https://github.com/morphinejh/dosboxece-opl/wiki/Compiling" and I saw mentioned the library "libieee1284-dev".
I installed it and the compilation completed (although I suspect it was not this specific library, I have installed a lot of software these days).

The only problem is I don't have fluidsynth support, because Mint 21 has upgraded to fluidsynth3.

Good to hear! I was able to replicate your issue exactly. However, I had to step through compile errors step-by-step, and then fix them sequentially, without 'cleaning' the project. If I started with a fresh version of the source after having all the requirements, I couldn't repeat it. Probably some incorrect decisions being made in the build process that get cached in make files.

That said, the library you mention is only for that version (dosboxece-opl) because it can talk to the parallel port for OPL hardware. You actually don't need it for Yesterplay's source code. Also, even though fluidsynth is newer, it should still work and only give you some warning on start-up of Dosbox.

Here were my steps to get a clean compile on Mint 21 without errors:
  • Get requirements:
    sudo apt install autoconf g++ libc-dev cmake libsdl1.2-dev libsdl-net1.2 libfluidsynth-dev libtool
  • Get and compile mt32emu (cmake, make, make install). You only need to make and install the mt32emu folder.
  • From root of DosboxECE source:
    autoupdate
    autoupdate acinclude.m4
  • Run the contents of 'autogen.sh'. It doesn't have compatible line endings for Linux.
    aclocal
    autoheader
    automake --include-deps --add-missing --copy
    autoconf
  • Grab necessary missiong Glide SDK headers
    wget -O include/sdk2_glide.h https://github.com/fcbarros/openglide/raw/main/sdk2_glide.h
    wget -O include/sdk2_3dfx.h https://github.com/fcbarros/openglide/raw/main/sdk2_3dfx.h
    wget -O include/sdk2_glidesys.h https://github.com/fcbarros/openglide/raw/main/sdk2_glidesys.h
    wget -O include/sdk2_sst1vid.h https://github.com/fcbarros/openglide/raw/main/sdk2_sst1vid.h
    wget -O include/sdk2_glideutl.h https://github.com/fcbarros/openglide/raw/main/sdk2_glideutl.h
  • ./configure
  • make

*EDIT: Spelling corrections

Last edited by morphinejh on 2022-08-26, 20:23. Edited 1 time in total.

Reply 1499 of 1565, by morphinejh

User metadata
Rank Newbie
Rank
Newbie
LukasThyWalls wrote on 2022-08-26, 16:58:
Yeah, just started DOSBox ECE throw terminal and i see a bunch of errors related to PC Speaker just when i started it, without s […]
Show full quote
villeneuve wrote on 2022-08-26, 08:32:

You could launch DOSBox ECE via terminal and have a look at what kind of (error-)messages are put out when launching. When I tried the DOSBox ECE on Linux this week it should an issue with PC speaker although I can't remember what it was but the game I played worked fine with PC speaker although it has to be said it only has *very* few *very* basic sound effects.

Yeah, just started DOSBox ECE throw terminal and i see a bunch of errors related to PC Speaker just when i started it, without starting the game yet:

PC speaker output buffer length: 145
mixer callback wants too many samples from pc speaker emulator: 1103
mixer callback wants too many samples from pc speaker emulator: 957
mixer callback wants too many samples from pc speaker emulator: 812
mixer callback wants too many samples from pc speaker emulator: 667
mixer callback wants too many samples from pc speaker emulator: 522
mixer callback wants too many samples from pc speaker emulator: 377
mixer callback wants too many samples from pc speaker emulator: 232

However, i tested Prince of Persia and Lotus 3 with PC Speaker and doesn't do anything like that. Maybe i could record it if it's useful...

Hello LukasThyWalls, you should check out this thread: ripa PC Speaker patch (was Want to use PC Speaker and not Sound Blaster in StarControl 1)

There is at least one other game that has regressed in comparison to vanilla Dosbox, you may have found a second one. The mixer callback warning you show is also discussed there.

ripa wrote on 2016-12-10, 10:29:

It's expected and you can ignore it.