Solved Confused Over Dos Games
-
@voljega okey, i understand, but you need to translate your tutorial in french too
-
@acris lol no problem as soon as I have time
-
@dragu Well I can confirm that dosbox internal mapper is an useless fully bugged piece of s**t.
I start a game with the following mapping (keeping only assigned button):key_esc "stick_0 button 8" "key 41" key_enter "stick_0 button 9" "key 40" key_lshift "stick_0 button 2" "key 225" key_lctrl "stick_0 button 0" "stick_0 button 4" "key 224" key_lalt "stick_0 button 1" "key 226" key_up "stick_0 axis 1 0" "key 82" key_left "stick_0 axis 0 0" "key 80" key_down "stick_0 axis 1 1" "key 81" key_right "stick_0 axis 0 1" "key 79" key_space "stick_0 button 3" "key 44" key_rctrl "stick_0 button 5" "key 228" mbutton_left "stick_0 button 6" mbutton_middle mbutton_right "stick_0 button 7"
mouse clicks dont work, I go back into internal mapper with ctrl+F1, notices L and R for mouse are greyed out so I remapped them on the same buttons that before, saves and now I have :
key_esc "key 41" key_enter "key 40" key_lshift "key 225" "stick_0 button 2" key_lctrl "key 224" "stick_0 button 0" key_lalt "key 226" "stick_0 button 1" key_space "key 44" "stick_0 button 3" key_rctrl "key 228" key_up "key 82" "stick_0 axis 1 0" key_left "key 80" "stick_0 axis 0 0" key_down "key 81" "stick_0 axis 1 1" key_right "key 79" "stick_0 axis 0 1" mbutton_left "stick_0 button 2" mbutton_middle mbutton_right "stick_0 button 3"
So I lost at least three button mappings I didn't touch, buttons used for mouse clicks have changed id for no reason at all and are clearly not the 2 and 3 button on my controller, and still besides my now totally messed up configuration, buttons 6 et 7 now works for clicks when they weren't working before and the map is refering to 2 and 3
-
@voljega aaaand ladies and gentleman everything seems related to a crazy parameter in dosbox.cfg, had to dig deep into cryptic forums to find that :
"If button wrap is activated, on joysticks with more than 4 buttons the higher physical buttons are mapped to lower logical numbers. For example physical button 5 is mapped to logical button 1, physical button 6 to logical button 2 etc."
So that f**kin parameter
buttonwrap
when set to true actually restrict the number of buttons of your gamepad to the number of buttons of the emulated joystick, in that case 4 at most.... thus my button with higher id were erased or remapped automactically on lower buttonsEverything seems to work fine now, except the deadzone of course
-
@acris tiens cadeau : https://github.com/recalbox/recalbox-os/wiki/Comment-utiliser-DOSBox-pour-émuler-des-jeux-DOS
rajouté dans le How To aussi
bon c'est traduti à l'arrach et je m'aperçois que c'est assez mal rédigé, pas toujours assez clair, je le reformulerai à l'occas
-
@voljega merci merci je relirai à l'occaz, thank you very much
-
@voljega
You dont feel that you should apologize to dosbox
Logical Gates : AND, OR, XOR, NOT, NAND, NOR and XNOR
Illogical Gates : bill
So software they steal from Jobs, hardware crap. :] -
@dragu no I'm allowed a little bad faith now and then
-
Came across this thread when trying out the new dosbox support in Recalbox...
@voljega said in Confused Over Dos Games:
Everything seems to work fine now, except the deadzone of course
Fought with that the other day, too. You can do that by OS joystick calibration with jscal. The created correction values contain a dead zone. The great thing is: but it does not calculate it. Hooray! It's always 0... The usual answer is jstest-gtk, which is not helpful in our case. So the only way I found was actually calculating the correction values with a deadzone myself...
Would be great if Recalbox would provide a UI calibration tool for analog joysticks.
In the end I found I don't need deadzones, if I just normally calibrate with jscal, and leave alone the calibration in DOS apps (and setting timed=false)Unfortunately Recalbox lacks the jscal-store/jscal-restore tools to make the calibration persistent. So you'd also here have to create some homegrown udev magic...
-
@voljega: Some other question, you might have come across and solved during your exodos endeavour..
How did you deal with games that have multiple exes in the same rom folder? Like a main game with separate extensions, that also have a separate binary. The current concept of dosbox support in Recalbox seems to assume 1 rom folder == 1 binary... -
@voljega
Duke Nukem I is such case. I modified dosbox.bat to have 3 selections. As this you can stay the multiple .exe in the same directory. -
@redm yeah we spoke about calibration / deadzone on a another post. contrary to what you think, recalbox includes pretty much every linux command to modify deadzones.... but dosbox doesn't seem to care about it and just ignore those settings, at least for right stick of a gamepad (which i used to map mouse)
so the thread i'm mentioning is there : https://github.com/recalbox/recalbox-os/wiki/How-to-use-DOSBox-to-emulate-DOS-games
sorry it's in french, but it's pretty straightforward and you might be able to translate it through google or somethingfor main game with separate exes, well this is a false problem, original game still only used only one main exe (or bat) for launching the game, so you just have to find the right one and everythig will launch correctly (there might be some relative/absolute path problems you'll have to deal with)
-
@voljega said in Confused Over Dos Games:
@redm yeah we spoke about calibration / deadzone on a another post. contrary to what you think, recalbox includes pretty much every linux command to modify deadzones....
What commands would that be? I only see jscal... And graphical calibration? I only see the button/axis mapping configuration in ES... but this should be irrelevant for dosbox...
but dosbox doesn't seem to care about it and just ignore those settings, at least for right stick of a gamepad (which i used to map mouse)
Well, on RetroPie I calibrated and buttonmapped the OS joystick devices with jscal and dosbox is simply using that configuration, through SDL. Without any additional mapping in dosbox conf. E.g. I created a weird button mapping with jscal, and it was exactly like that in dosbox. So it was definitely obeying that joydev device config (not evdev or whatever else there might be).
That being said, unfortunately button mapping using jscal doesn't work on Recalbox (gives a strange error), so I just did a complete weird calibration... still in the game the joystick behaved just normal and well calibrated... interesting...
So maybe this is indeed different in the Recalbox build of dosbox... but how?so the thread i'm mentioning is there : https://github.com/recalbox/recalbox-os/wiki/How-to-use-DOSBox-to-emulate-DOS-games
sorry it's in french, but it's pretty straightforward and you might be able to translate it through google or somethingI only see a Wiki page under that link...
for main game with separate exes, well this is a false problem, original game still only used only one main exe (or bat) for launching the game, so you just have to find the right one and everythig will launch correctly (there might be some relative/absolute path problems you'll have to deal with)
Well, e.g. for Wing Commander 2 you have the main game exe wc2.exe and for the two expansion packs, which need to be installed into the same directory, there are two separate exes. It's basically 3 games in one directory...
-
@redm sorry my mistake, (copy paster error) the thread I was referencing is there : https://forum.recalbox.com/topic/9947/régler-manuellement-les-deadzones
but as I said, I managed to modify deadzones but it doesn't seem to be working for at least the right stick ...
For your several exe problem, then you'll have to write a custom bat file to choose the exe before game :
For DOS Games I recommend using the ExoDOS Collection which simplifies greatly configuration and everything, so for Wing Commander they created and launch the following bat file called run.bat instead of an exe :
:menu @echo off cls echo. echo Press 1 for Wing Commander and the Secret Missions Expansion Pack echo Press 2 for Secret Missions 2 - Crusade echo Press 3 to quit echo. choice /C:123 /N Please Choose: if errorlevel = 3 goto quit if errorlevel = 2 goto wc2 if errorlevel = 1 goto wc1 :wc1 cd wing cls wc goto menu :wc2 cd wing cls sm2 goto menu :quit
you can adapt that your liking with your correct paths off course.
-
@voljega Yea, I had a look at Exodos, it's just that this are some 300gb O_o
Anyway, right such a bat file could be an option. Downside is that I can't have separate gamelist entries. And I, or any other user, have to figure out how to write batch files (beyond calling an exe file). Would be great if Recalbox could take care of this somehow. I kinda like the idea of treating directories as roms and launch the game by a usually simple bat file. But it also has it's down sides. For instance also when you need to initially install a game first, re-run setup/install later or do things outside of dosbox, like setting SDL variables per game.
The DOS stuff will always be something you need to fiddle around with to get the games running, it has always been that way, but if as many as possible of the tasks could be taken care of by the system this would help a lot.
-
@redm I don't see how recalbox could take care of any of that, it's simply impossible.
For instance, I wrote a custom ExoDOS to Recalbox converter which already expended to several hundreds of lines and after converting and testing close to 1000 games I still had to do a lot of manual corrections and there are still close to 10% of the games not working, because every dos game is different, there is no rules...
The only possible thing which I intend to try when deadzone problems will be fixed is to generate a standard mapper file with configgen, that would be good and working for every controller
Anyway, I really thing installing a dos game should never be done on recalbox but on windows, it's simply too risky and too linked to dos and the dos filesystem to be sure that everything will go fine in a linux
-
@voljega Yea, I didn't say it's a simple task Or that everything needed is already there just needs to be plugged together. But I think aside from the inherent DOS problems, that already existed back then, quite a bit can be done to make DOS games easier consumable.
When I started to look into dosbox on Retropie I had questions like:
- how should I go when I need to install that game first? from where, to where? how do I get that CD into the dosbox?
- where is the dosbox config I need to modify? should I copy it to my rom? or somewhere else?
- why does that fricking keyboard layout not work properly inside dosbox? (I couldn't make it do proper german layout. Even manually setting it to gr makes it kinda german, but some keys are dead, some have a different mapping, some characters are missing... It's been a while, but I'm sure under the real DOS we did have german umlauts...)
- how do I get the games into ES in a nice way and without tons of directories? Esp. when you are also new to Recalbox/Retropie/ES these are points which are unclear.
- how can I select joystick devices for dosbox?
- how does that weird mapper work? (I didn't ever figure out how to modify the Shift layer or how to make german special characters work)
All such questions. Many of which I think are solvable. You spent days to figure out all the basics and haven't even started with special problems of certain games. Sure it doesn't help that dosbox doesn't really seem to have an active development (latest version is pretty old I think) and apparently not really open to integrate even obvious patches, like for the various joystick problems. But some things can also be done around dosbox. And I think Recalbox already does some things well here. E.g. those txt files in the rom folders with simple instruction what to do are actually extremely helpful if you are new. ES could automatically get special context menus for the dos case: to run an interactive dosbox, entries to run install/setup programs or to select input devices and set appropriate env variables (as far as possible). Sure, somebody has to do it...
And yea, I for instance don't have a Windows anymore and still would like to run those good old games
-
@redm said in Confused Over Dos Games:
Sure it doesn't help that dosbox doesn't really seem to have an active development (latest version is pretty old I think) and apparently not really open to integrate even obvious patches, like for the various joystick problems
Although quite a long time in the making, the latest version was juste released ?
And they are clearly open to external help, but you have to learn the specific of recalbox distribution (mostly buildroot and configgen), but I don't think the team has much time to look at them at the moment with the latest release and the heay support period it requires, it should be more easy for them in a few months
-
@voljega
There is always a possibility to help yourself in the dead-zone problematic. It depend alot of the speed, higher the movement speed, higher the deadzone. But you can combine, as example mouse mapping for left/right/backward and direction key for forward, as an example. With the possibility to put forward mouse on a button for lower forward speed. And as you can remap multiple keys on a single emulation switch, further possibilities. All this vary with the games. -
@dragu said in Confused Over Dos Games:
But you can combine, as example mouse mapping for left/right/backward and direction key for forward, as an example.
I'm mostly interested in mouse mapping for adventure games or strategy games