DOSBox

With DOSBox having been released as a downloadable core, I thought I’d open a thread to discuss a serious issue with it: it doesn’t actually seem to work. Trying to mount a drive through the config file’s autoexec section (since the colon key, among several others, does not seem to register) makes the core freeze, and trying to open a game EXE directly also leads to the same thing.

Am I the only one with this issue? It’s strange, because I actually have an older 32-bit build of this core that I downloaded elsewhere, and apart from the aforementioned issues with certain keys not working and a few games crashing, it actually worked, and I could mount files and drives and play games.

By the way, this issue is in both the 32-bit and 64-bit builds.

Edit: Tried building the core myself to see if that fixed anything. I had to make a slight adjustment to the Makefile for it to compile, however, since it was trying to look for libco.o, when it should be looking for libco.c. In any case, that didn’t help either.

There was this a month ago at least …

I’ve never used DOSBox (real or libretro variant) at least, so dunno. Not sure how complete it really is.

Well, as it is, the core doesn’t work, so I would advise removing it from download until it is fixed.

And the older build I have appears to be from earlier this month, meaning it’s likely post-latest SVN update. Something else along the line must have broken it. I suppose I’ll look at the commits later and see if I can pinpoint which one broke it.

Edit: Ok, now this is weird. I compiled both the “Latest SVN” commit and a commit right before that one, and both give me the same issue as the latest commit does. Could it have something to do with what the README says, namely that the config.h file needs to be edited depending on the build platform?

Edit 2: These are the 32-bit builds that do, for the most part, work:

https://skydrive.live.com/?cid=622B50941FF51759#cid=622B50941FF51759&id=622B50941FF51759!6157

Could name some games you are trying that crash? I’ve not had load issues on the unixy platforms I normally test on but I’ll bust out my windows VM and check.

The key thing is a real issue, RetroArch’s old Keyboard polling method doesn’t pass along all of the keys, I’ll update it to use the newer callback method and go from there.

The keyboard callback implementation is kinda incomplete atm. IIRC, Win32 handling isn’t implemented yet, and UTF-8 support in X11 is missing (probably not needed for Dosbox though).

From the games I have, Jazz Jackrabbit, Doom 1 and 2 (I know, we got Prboom, but still), Warcraft 1 and 2, Sim City 2000, Abuse, and MechWarrior 2 all crash. Trying to get into Windows 3.11 also causes a crash, although I know it’s not exactly a priority to get that to work (though I think it’d be worthwhile, as there are games made for it).

I’ve run some tests and I can’t figure out whats wrong with the DLL’s provided by retroarch-phoenix except that neither (32-bit or 64-bit) work. My own 32-bit build works just fine though.

The game crashes are caused by the C_DYNREC option in config.h, disable it and the games work. This happens on OS X too and is presumably caused by protected-mode games.

From the games I have, Jazz Jackrabbit, Doom 1 and 2 (I know, we got Prboom, but still), Warcraft 1 and 2, Sim City 2000, Abuse, and MechWarrior 2 all crash. Trying to get into Windows 3.11 also causes a crash, although I know it’s not exactly a priority to get that to work (though I think it’d be worthwhile, as there are games made for it).[/quote] odd Sim City 2000 works just fine for me on linux. maybe just a windows problem.

I’m using MinGW to compile, and the only way the core would build is by changing the following line in the Makefile:

OBJECTS = $(SOURCES:.cpp=.o) libco/libco.o

into

OBJECTS = $(SOURCES:.cpp=.o) libco/libco.c

Think this has anything to do with it?

Not that it matters, of course, because the resulting core does the same thing as the one provided by Phoenix.

Edit: Tried building the latest commits. Now the core doesn’t mount anything at all, either whatever is on the config’s autoexec, or when opening a game directly on Phoenix.

The Makefile is correct, make is supposed to determine how to build libco.o itself. That assignment basically says to take all of the items in the SOURCES list and replace ‘.cpp’ with ‘.o’. libco/libco.o is written directly like that because it is the only file without a ‘.cpp’ extension. It would be just as valid to delete the SOURCES list altogether and list only the needed object files.

But there is definitely something not right going on here; when I run the version supplied by retroarch in a gdb session, instead of just hanging it acts like no arguments are passed to mount. Running something like ‘mount C testdir’ will just print the list of mounted directories instead of hanging.

I’ll have to look into it some more, cause I don’t have any idea why it’s acting up.

Well, the guy with the SkyDrive somehow figured it out. No idea how to contact him though.

Also, there’s overlap between Retroarch’s keyboard commands and Dosbox’s. For instance, ESC is used to back out of menus, but also to close RA by default. Right now I just re-map the keys, but that’s a bit awkward. There should be a way to switch between RA input and Dosbox input.

http://f.ppxclub.com/592708-1-1

That’s his official thread for Dosbox Libretro. You can register there and post there, or maybe send him a PM. He seems to know some broken English.

You can set input_enable_hotkey keybind. If you config that, you have to press that to activate other retroarch hotkeys. Set it to something that DOSbox doesn’t use.

Thanks.

The Windows builds on updater were broken anyways, so I removed Dosbox builds in updater in case anyone wonders.

That’s fine.

If you can, try to persuade that guy to publish his changes to github so everyone can see what he’s doing. Somehow he got the x86 version to work.

Hello everyone,

I am trying DOSBox right now under Arch Linux 64bit, and I simply can’t get it to recognize my keyboard. I am running it under X

If I use

input_libretro_device_p1 = 3

it tells me that “3” isn’t supported by this core, and it falls back to a joypad.

So how can I use the keyboad with the retroarch dosbox core? I am really at a loss right now.

regards

There’s an overlay for an onscreen keyboard that you can try. Between it and the physical keyboard, I’ve been able to enter commands, though I didn’t get much further than that, since it’s kinda broken on win64, where I was testing it. I believe the AUTOEXEC thing works just like with standalone, as well, though I don’t know any details about that.

Ok, so I’ll start by saying I’ve been using RA on Android for years and until recently have been able to resolve any issue I encountered myself or with some online sleuthing, however this one has me stumped.

I play numerous old dos games via dosbox core and have always been able to setup retropad bindings by selecting “mapper” as user 1 device type under controls, which in turn adds several retropad mapping entries under dosbox core options. This has recently stopped working after I updated my dosbox core via online updater. I have also noticed that once dosbox core is loaded retropad isn’t an option under settings/input/user 1 mapping/device type… not sure if this is related.

Anyone have any suggestions because I am going nuts on this one.