src/osd/sdl/sdlmisc.c
| r933 | r934 | |
| 166 | 166 | |
| 167 | 167 | void *osd_alloc_executable(size_t size) |
| 168 | 168 | { |
| 169 | | #ifdef SDLMAME_LINUX |
| 170 | | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED, 0, getpagesize()); |
| 171 | | #elif defined(SDLMAME_DARWIN) |
| 169 | #if defined(SDLMAME_DARWIN) |
| 172 | 170 | return (void *)malloc(size); |
| 173 | 171 | #elif defined(SDLMAME_UNIX) |
| 174 | | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, 0, getpagesize()); |
| 172 | return (void *)mmap(0, size, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, 0, 0); |
| 175 | 173 | #elif defined(SDLMAME_WIN32) |
| 176 | 174 | return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); |
| 177 | 175 | #elif defined(SDLMAME_OS2) |
src/osd/sdl/input.c
| r933 | r934 | |
| 626 | 626 | // loop over all axes |
| 627 | 627 | for (axis = 0; axis < SDL_JoystickNumAxes(joy); axis++) |
| 628 | 628 | { |
| 629 | | sprintf(tempname, "J%d A%d %s", stick + 1, axis, joy_name); |
| 630 | | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.axes[axis], ITEM_ID_XAXIS + axis, generic_axis_get_state); |
| 629 | if (axis < 6) |
| 630 | { |
| 631 | sprintf(tempname, "J%d A%d %s", stick + 1, axis, joy_name); |
| 632 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.axes[axis], ITEM_ID_XAXIS + axis, generic_axis_get_state); |
| 633 | } |
| 634 | else |
| 635 | { |
| 636 | sprintf(tempname, "J%d A%d %s", stick + 1, axis, joy_name); |
| 637 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.axes[axis], ITEM_ID_OTHER_AXIS_ABSOLUTE, generic_axis_get_state); |
| 638 | } |
| 631 | 639 | } |
| 632 | 640 | |
| 633 | 641 | // loop over all buttons |
| 634 | 642 | for (button = 0; button < SDL_JoystickNumButtons(joy); button++) |
| 635 | 643 | { |
| 636 | | sprintf(tempname, "J%d button %d", stick + 1, button); |
| 637 | | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.buttons[button], ITEM_ID_BUTTON1 + button, generic_button_get_state); |
| 644 | if (button < 16) |
| 645 | { |
| 646 | sprintf(tempname, "J%d button %d", stick + 1, button); |
| 647 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.buttons[button], ITEM_ID_BUTTON1 + button, generic_button_get_state); |
| 648 | } |
| 649 | else |
| 650 | { |
| 651 | sprintf(tempname, "J%d button %d", stick + 1, button); |
| 652 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.buttons[button], ITEM_ID_OTHER_SWITCH, generic_button_get_state); |
| 653 | } |
| 638 | 654 | } |
| 639 | 655 | |
| 640 | 656 | // loop over all hats |
| r933 | r934 | |
| 647 | 663 | sprintf(tempname, "J%d hat %d Left", stick + 1, hat); |
| 648 | 664 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.hatsL[hat], ITEM_ID_OTHER_SWITCH, generic_button_get_state); |
| 649 | 665 | sprintf(tempname, "J%d hat %d Right", stick + 1, hat); |
| 650 | | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.hatsR[hat], ITEM_ID_OTHER_SWITCH, generic_button_get_state); |
| 666 | input_device_item_add(devinfo->device, tempname, &devinfo->joystick.hatsR[hat], ITEM_ID_OTHER_SWITCH, generic_button_get_state); |
| 651 | 667 | } |
| 652 | 668 | } |
| 653 | 669 | mame_printf_verbose("Joystick: End initialization\n"); |
| r933 | r934 | |
| 959 | 975 | devinfo->keyboard.state[event.key.keysym.sym-SDLK_FIRST] = 0; |
| 960 | 976 | break; |
| 961 | 977 | case SDL_JOYAXISMOTION: |
| 978 | printf("joy %d axis %d to %d\n", event.jaxis.which, event.jaxis.axis, event.jaxis.value); |
| 962 | 979 | devinfo = generic_device_find_index(joystick_list, event.jaxis.which); |
| 963 | 980 | if (devinfo) |
| 964 | 981 | { |
src/osd/sdl/sdlmain.c
| r933 | r934 | |
| 99 | 99 | { SDLOPTION_VIDEO, "soft", 0, "video output method: soft or opengl" }, |
| 100 | 100 | { SDLOPTION_NUMSCREENS, "1", 0, "number of screens to create; SDLMAME only supports 1 at this time" }, |
| 101 | 101 | { SDLOPTION_WINDOW ";w", "0", OPTION_BOOLEAN, "enable window mode; otherwise, full screen mode is assumed" }, |
| 102 | | // not used |
| 103 | | { "maximize;max", "1", OPTION_BOOLEAN, "default to maximized windows; otherwise, windows will be minimized" }, |
| 104 | 102 | { SDLOPTION_KEEPASPECT ";ka", "1", OPTION_BOOLEAN, "constrain to the proper aspect ratio" }, |
| 105 | 103 | { SDLOPTION_UNEVENSTRETCH ";ues", "1", OPTION_BOOLEAN, "allow non-integer stretch factors" }, |
| 106 | 104 | { SDLOPTION_EFFECT, "none", 0, "name of a PNG file to use for visual effects, or 'none'" }, |
| r933 | r934 | |
| 181 | 179 | { NULL, NULL, OPTION_HEADER, "SOUND OPTIONS" }, |
| 182 | 180 | { SDLOPTION_AUDIO_LATENCY, "3", 0, "set audio latency (increase to reduce glitches, decrease for responsiveness)" }, |
| 183 | 181 | |
| 184 | | // input options |
| 185 | | { NULL, NULL, OPTION_HEADER, "INPUT DEVICE OPTIONS" }, |
| 186 | | { SDLOPTION_MOUSE, "0", OPTION_BOOLEAN, "enable mouse input" }, |
| 187 | | { SDLOPTION_JOYSTICK ";joy", "0", OPTION_BOOLEAN, "enable joystick input" }, |
| 188 | | { SDLOPTION_STEADYKEY ";steady", "0", OPTION_BOOLEAN, "enable steadykey support" }, |
| 189 | | { SDLOPTION_A2D_DEADZONE ";a2d", "0.3", 0, "minimal analog value for digital input" }, |
| 190 | | |
| 191 | | #ifdef MESS |
| 192 | | { "mouse_device", "mouse", 0, "enable (keyboard|mouse|joystick) if a mouse control is present" }, |
| 193 | | #endif |
| 194 | | |
| 195 | 182 | // keyboard mapping |
| 196 | 183 | { NULL, NULL, OPTION_HEADER, "SDL KEYBOARD MAPPING" }, |
| 197 | 184 | { SDLOPTION_KEYMAP, "0", OPTION_BOOLEAN, "enable keymap" }, |