VOGONS


First post, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

I have been playing around with DOSBox 0.70 on a Mac Pro (2 x 2 GHz, 2 GB RAM, OS X 10.4.9) and I have a problem.

Mainly I have been trying to play UFO: Enemy unknown/X-COM:Ufo Defense, and it seems that after about one hour, usually on the second tactical mission, the game hangs every time. The music will keep playing, but the mouse cursor is gone and the game won't react to any input. No error messages in the console. All DOSBox commands such as increasing frameskip work.

I have tried several versions of the game, and also tried tried increasing and decreasing the cycles and switching between dynamic and normal CPU core, but the same problem seems to occur. I've also had the same problem occur once in Martian Dreams, which so far is the only other game I have tried. My experience with DOSBox so far hasn't really encouraged me to try other games.

Am I the only one, or does anyone else recognize this problem?

Last edited by lillesvamp on 2007-06-08, 13:10. Edited 1 time in total.

Reply 2 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

Apologies for not searching properly. Feel free to delete/close this thread.

Reply 3 of 17, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

For now it's best to use 0.65 or compile the cvs.

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

Reply 4 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

This is probably answered in another thread too, but I'll be damned if I can find it:

I can build DOSBox from cvs, but it will crash if I try to enable the dynamic core in the config file.

Is this a known bug/limitation? Is there a workaround?

Reply 5 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

What OS/processor?

Reply 6 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

Mac Pro (2 x 2 GHz Dual-Core Intel Xeon (64 bit), 2 GB RAM, OS X 10.4.9).

The error message is "Illegal instruction".

Reply 7 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

That is you're running it in 64bit mode? The recompiler is not tested
under OSX/64 yet. If you know your way around with the debugger
you might be able to get it working.

Reply 8 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

No sorry, running in 32-bit mode, at least I assume that would be the default in 10.4. If anyone knows better, feel free to correct me. I'm no expert on those things.

Something that was mentioned in the other thread led me to believe that the processor being 64-bit was what was causing the trouble with the official build.

Reply 9 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The 0.70 release works for you, right? Does it fully work with core=dynamic (it should)?

Reply 10 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

Yes, well, it runs with the dynamic core, and works up until the problem mentioned in the original post, those mysterious hangs.

Reply 11 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Try compiling the 0.70 release sources and see if it works the same way
as the prebuilt OSX dosbox version. Keep an eye on the output of
./configure if the dynamic core is enabled.

Reply 12 of 17, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

good question. i don't know which dynamic core will actually be selected on 64 capable processor running in 32 bit mode.

(we recently changed the dynamic core system under dosbox so it can handle 64 bit mode)

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

Reply 13 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

Well, just to add to the confusion: the 0.70 source won't compile.

nullmodem.cpp: In constructor 'CNullModem::CNullModem(Bitu, CommandLine*)':
nullmodem.cpp:102: error: invalid conversion from 'int' to '_TCPsocket*'
nullmodem.cpp:102: error: initializing argument 1 of 'TCPClientSocket::TCPClientSocket(_TCPsocket*)'

Reply 14 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Try disabling all modem/serial stuff (maybe a configure switch or so).

Please post the output of ./configure used with the cvs sources.

Reply 15 of 17, by lillesvamp

User metadata
Rank Newbie
Rank
Newbie

Thanks, got it (the 0.70 source) to compile after some configure.in hacking, and it crashes with the dynamic core enabled, just like the cvs version.

Are you sure you want all of the ./configure output? Well, here it is (Note: This is from running configure with the cvs source, not the 0.70 stable source):

checking build system type... i386-apple-darwin8.9.1
checking host system type... i386-apple-darwin8.9.1
checking target system type... i386-apple-darwin8.9.1
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for sdl-config... /sw/bin/sdl-config
checking for SDL - version >= 1.2.0... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for unsigned char... yes
checking size of unsigned char... 1
checking for unsigned short... yes
checking size of unsigned short... 2
checking for unsigned int... yes
checking size of unsigned int... 4
checking for unsigned long... yes
checking size of unsigned long... 4
checking for unsigned long long... yes
checking size of unsigned long long... 8
checking for int *... yes
checking size of int *... 4
checking for stdlib.h... (cached) yes
checking for sys/types.h... (cached) yes
Show last 71 lines
checking for sys/socket.h... yes
checking for netinet/in.h... yes
checking for pwd.h... yes
checking if environ can be included... no
checking if environ can be linked... yes
checking for powf in -lm... yes
checking if compiler allows __attribute__... yes
checking if compiler allows __builtin_expect... yes
checking for ALSA CFLAGS...
checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread
checking for libasound headers version >= 0.9.0... not present.
checking for snd_ctl_open in -lasound... no
checking whether byte ordering is bigendian... no
checking for target cpu type... x86 compatible
checking whether x86 dynamic cpu core will be enabled... yes
checking whether recompiling cpu core will be enabled... no, using dynamic-x86
checking whether fpu emulation will be enabled... yes
checking whether x86 assembly fpu core will be enabled... yes
checking whether to enable unaligned memory access... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_check_sig in -lpng... yes
checking SDL_net.h usability... yes
checking SDL_net.h presence... yes
checking for SDL_net.h... yes
checking for SDLNet_Init in -lSDL_net... yes
checking for main in -lGL... no
checking for main in -lopengl32... no
checking GL/gl.h usability... no
checking GL/gl.h presence... no
checking for GL/gl.h... no
checking whether opengl display output will be enabled... yes
checking SDL_sound.h usability... yes
checking SDL_sound.h presence... yes
checking for SDL_sound.h... yes
checking for Sound_Init in -lSDL_sound... yes
checking for Sound_Seek in -lSDL_sound... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mprotect... yes
checking for setpriority support... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/cpu/Makefile
config.status: creating src/cpu/core_full/Makefile
config.status: creating src/cpu/core_normal/Makefile
config.status: creating src/cpu/core_dyn_x86/Makefile
config.status: creating src/cpu/core_dynrec/Makefile
config.status: creating src/debug/Makefile
config.status: creating src/dos/Makefile
config.status: creating src/fpu/Makefile
config.status: creating src/gui/Makefile
config.status: creating src/hardware/Makefile
config.status: creating src/hardware/serialport/Makefile
config.status: creating src/ints/Makefile
config.status: creating src/libs/Makefile
config.status: creating src/libs/zmbv/Makefile
config.status: creating src/misc/Makefile
config.status: creating src/shell/Makefile
config.status: creating src/platform/Makefile
config.status: creating src/platform/visualc/Makefile
config.status: creating visualc_net/Makefile
config.status: creating include/Makefile
config.status: creating docs/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands

Reply 16 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Thanks, got it (the 0.70 source) to compile after some configure.in
hacking, and it crashes with the dynamic core enabled, just like the cvs
version.

Ok then nothing is broken in the cvs, but something gets broken with
your selfcompiles. Maybe somebody who successfully compiled the
sources and does not get crashes can post the used compiler flags.
Maybe have a look at the development forum, darkmarock posted
some compile instructions there.

Are you sure you want all of the ./configure output?

Yep 😀
Thanks, the relevant lines are
checking for target cpu type... x86 compatible
checking whether x86 dynamic cpu core will be enabled... yes
which are fine (regular core=dynamic as for 32bit x86 systems).

Reply 17 of 17, by darkgamorck

User metadata
Rank Member
Rank
Member

I'm using system default flags on my custom x86 OS X compiles. My experience in Gentoo long ago taught me that being too aggressive with compiler optmizations with GCC can cause more problems than it solves. So unless I need an extra performance boost, I typically don't bother. On a Core 2 Duo Mac Book Pro with DOSBox 0.70, performance isn't too much of an issue.