Menu

#871 Many emulators reports "unexpected error occured. Received signal 11()"

v3.0
closed-fixed
compyx
None
Windows
2017-02-14
2017-02-07
MIRKOSOFT
No

Emulators (tested) x128, x64sc, xscpu64, xplus4 reports error "Unexpected error occured. Received signal 11()" - after confirm closes when they're calling with arguments containing file to mount or start. When running directly without arguments they're working correctly. VICE Nightly Build 32791 - first time appeared in Build 32788 (see ticket 870)
I created new ticket 'cause now it is not only with specific software - no matter of software type.
Please fix it 'cause VICE is unusable.
Miro

Discussion

  • MIRKOSOFT

    MIRKOSOFT - 2017-02-07

    I forgot write important thing - in many I have drive 11 set as IEC device using folder.

    Miro

     
  • Querino

    Querino - 2017-02-08

    how to exactly reproduce this? not that i could help, but i am just a bit nosy.

     
  • gpz

    gpz - 2017-02-08

    please attach the vice.ini you are using, and the logfile from when this crash is happening

     
  • MIRKOSOFT

    MIRKOSOFT - 2017-02-09

    In attachment is vice.ini.
    Really is impossible to start Plus/4 - same error - I must to use YAPE, but what with C128?

    Miro

     
  • Querino

    Querino - 2017-02-09

    your ini also fails in stable 3.0a

    it's the joystick settings.

    • start vanilla xplus4.exe
    • set sidcart joystick to an usb joystick (i have speed-link comp. pro)
    • save settings
    • restart xplus4.exe
    • ----> signal 11

    i get some weird entry then: JoyFire1Button=34361356
    that value is always different but always absurdly high.

     
  • MIRKOSOFT

    MIRKOSOFT - 2017-02-10

    I was following your instructions, started default +4 and saved only your steps, then modified settings in main INI and started 3.0 and then revision 32792 : again the same!
    Plus/4 works, but only with old VICE 2.4 config and works with released 3.0 - I'm testing nightly builds and with these works not since revision 32788.
    INI files is used same for 3.0 and for nightly builds.

    What now?

    Miro

     
  • gpz

    gpz - 2017-02-10

    as always, start with NO config, then enable features one by one until you can reproduce the problem with least amount of changes to the default config. using random configs that have god knows what enabled doesnt help.

     
  • Greg King

    Greg King - 2017-02-10

    Miro, edit "vice.ini". Go to the "[PLUS4]" section. Change the "JoyDevice5=4" line. Change that "4" to "1". Then, you will be able to run xplus4.

     

    Last edit: Greg King 2017-02-10
  • MIRKOSOFT

    MIRKOSOFT - 2017-02-10

    Hi Greg!

    Really amazed, simple change to 1351 mouse?
    I had there USB joystick... but no matter, except this Q: why it makes problem?
    Thank you very much.
    Miro

     
  • Querino

    Querino - 2017-02-10

    as soon as JoyDevice5 is set to an USB joystick and JoyFire1Button button is set, plus4 crashes.

    i can leave JoyDevice5=4 if i delete JoyFire1Button=x

     
  • Greg King

    Greg King - 2017-02-10

    Run xplus4, open the "Settings" submenu, choose "Joystick settings", choose "Sidcart joystick settings...", then open the menu just under "Joystick in extra port #1". The first four lines in that menu are internal "devices". The other lines (Windows controllers) are external to VICE -- they can crash xplus4 when certain things happen. If one of the externals is saved to the settings file, then loading that settings file will crash xplus4. I managed to crash VICE also by choosing an external controller, then going back to the Sidcart joystick dialog, and choosing an internal device (that is, cancelling the external device).

    I think that I found the bug. Two arrays have slots for only four devices; but, the Sidcart is a fifth device (other similar arrays have five slots). After I used this patch, I could not persuade xplus4 to crash:

    Index: src/arch/win32/joy.c
    ===================================================================
    --- src/arch/win32/joy.c    (revision 32818)
    +++ src/arch/win32/joy.c    (working copy)
    @@ -68,8 +68,8 @@ static int joystick_fire_button[5];
    
     #ifdef HAVE_DINPUT
     /* Joystick devices.  */
    -static LPDIRECTINPUTDEVICE  joystick_di_devices[4] = { NULL, NULL };
    -static LPDIRECTINPUTDEVICE2  joystick_di_devices2[4] = { NULL, NULL };
    +static LPDIRECTINPUTDEVICE  joystick_di_devices[5] = { NULL, NULL };
    +static LPDIRECTINPUTDEVICE2  joystick_di_devices2[5] = { NULL, NULL };
    
     typedef struct _JoyAxis {
         struct _JoyAxis *next;
    
     
  • Querino

    Querino - 2017-02-10

    thanks a lot mr. king, again.

    after a quick test, it looks fine, no more signal 11, no more weird entries in the .ini

    hopefully it does not break the other emus, but x64sc seems to work fine, too.

     
  • compyx

    compyx - 2017-02-11

    Fixes applied in r32827. Thanks!

     
  • Greg King

    Greg King - 2017-02-12

    When I wrote my patch, it didn't occur to me to look for a macro that defined that number (5). After seeing your patch, I looked. I found

    #define JOYPORT_MAX_PORTS     5
    

    in "joyport.h".

     
  • MIRKOSOFT

    MIRKOSOFT - 2017-02-12

    Really fixed, tested.
    Thank you.
    Miro

     
  • compyx

    compyx - 2017-02-13

    I didn't think to look for an already defined constant, I figured this was one of these cases where only integer literals are used.

    Updated in r32844 to use the #define from joyport.h.

     
  • Marco van den Heuvel

    • status: open --> closed-fixed
    • assigned_to: compyx
     
  • Greg King

    Greg King - 2017-02-14

    "src/arch/gtk3/joy-win32.c" was copied from "src/arch/win32/joy.c" after the first patch, but before the second patch. Therefore, it needs to get the second patch (macro constant from "joyport.h").

     
  • compyx

    compyx - 2017-02-14

    Indeed, thanks for catching this.

    Updated in r32856.

     

Log in to post a comment.