Not much people responding!

Maybe I was rude a bit, by not giving a link to specific Ralf Brown interrup 
list function:
https://www.ctyme.com/intr/rb-1514.htm

The original function:
static bool joystick_detected()
{
    struct joystick joystick;
    joystick_read(&joystick);
    return joystick.axis[0] != 0 || joystick.axis[1] != 0;
}
works correctly under dosbox, but always detect Joystick in QEMU and 
VirtualBox...

my function:
static bool joystick_detected()
{
    struct joystick joystick;
    joystick_read(&joystick);
    return (joystick.axis[0] & 0xff00) != 0x8600;
}
works correctly under QEMU and VirtualBox, but always detect joystick in 
dosbox...

so when there is no joystick, and it is detected, the program hang in calibrate 
joystick function.

How I test in dosbox?

The default dosbox.conf file is:
# Suggested DOSBox configuration for DOS Defender
#   Usage: dosbox -conf dosbox.conf dosdef.com

[sdl]
output=opengl
windowresolution=1280x800

[cpu]
core=dynamic
cycles=max

and as seen in it, can be tested with 
dosbox -conf dosbox.conf dosdef.com

but as I don't have a joystick, I added joystick emulation to dosbox.conf:
[joystick]
joysticktype=2axis
timed=false
autofire=false
swap34=false
buttonwrap=false

After that I do:
dosbox -conf dosbox.conf
Ctrl-F1
then I add key bindings (wish I could add mouse bindings):
to X- 
to X+
to 1
to 2
then save

after that I:
dosbox -conf dosbox.conf dosdef.com
and then I am able to calibrate, with the keys I defined ... then play a bit.

So my version is still usable in dosbox (dosbox always think there is a 
joystick present0...
But also works in QEMU and VirtualBOX (giving an error and exiting when there 
is no joystck).

For this reason I believe my version is better for FreeDOS than the original 
one (which is better for DosBox).

Probably DosBox should be fixed to return AH=86h when no joystick is present.



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to