Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

segmentationi fault on Mac M2 #11568

Open
weezah opened this issue Sep 22, 2023 · 20 comments
Open

segmentationi fault on Mac M2 #11568

weezah opened this issue Sep 22, 2023 · 20 comments

Comments

@weezah
Copy link

weezah commented Sep 22, 2023

MAME version

0.258

System information

MacBook Pro 64 GB
Apple M2 Max
Ventura 13.3
Metal 3

INI configuration details

#
# CORE CONFIGURATION OPTIONS
#
readconfig                1
writeconfig               0

#
# CORE SEARCH PATH OPTIONS
#
homepath                  .
rompath                   roms
hashpath                  hash
samplepath                samples
artpath                   artwork
ctrlrpath                 ctrlr
inipath                   "$HOME/Library/Application Support/mame;$HOME/.mame;.;ini"
fontpath                  .
cheatpath                 cheat
crosshairpath             crosshair
pluginspath               plugins
languagepath              language
swpath                    software

#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory             cfg
nvram_directory           nvram
input_directory           inp
state_directory           sta
snapshot_directory        snap
diff_directory            diff
comment_directory         comments
share_directory           share

#
# CORE STATE/PLAYBACK OPTIONS
#
state                     
autosave                  0
rewind                    0
rewind_capacity           100
playback                  
record                    
exit_after_playback       0
mngwrite                  
aviwrite                  
wavwrite                  
snapname                  %g/%i
snapsize                  auto
snapview                  auto
snapbilinear              1
statename                 %g
burnin                    0

#
# CORE PERFORMANCE OPTIONS
#
autoframeskip             0
frameskip                 0
seconds_to_run            0
throttle                  1
sleep                     1
speed                     1.0
refreshspeed              0
lowlatency                0

#
# CORE RENDER OPTIONS
#
keepaspect                1
unevenstretch             1
unevenstretchx            0
unevenstretchy            0
autostretchxy             0
intoverscan               0
intscalex                 0
intscaley                 0

#
# CORE ROTATION OPTIONS
#
rotate                    1
ror                       0
rol                       0
autoror                   0
autorol                   0
flipx                     0
flipy                     0

#
# CORE ARTWORK OPTIONS
#
artwork_crop              0
fallback_artwork          
override_artwork          

#
# CORE SCREEN OPTIONS
#
brightness                1.0
contrast                  1.0
gamma                     1.0
pause_brightness          0.65
effect                    none

#
# CORE VECTOR OPTIONS
#
beam_width_min            1.0
beam_width_max            1.0
beam_dot_size             1.0
beam_intensity_weight     0
flicker                   0

#
# CORE SOUND OPTIONS
#
samplerate                48000
samples                   1
volume                    0
compressor                1
speaker_report            0

#
# CORE INPUT OPTIONS
#
coin_lockout              1
ctrlr                     
mouse                     0
joystick                  1
lightgun                  0
multikeyboard             0
multimouse                0
steadykey                 0
ui_active                 0
offscreen_reload          0
joystick_map              auto
joystick_deadzone         0.15
joystick_saturation       0.85
joystick_threshold        0.3
natural                   0
joystick_contradictory    0
coin_impulse              0

#
# CORE INPUT AUTOMATIC ENABLE OPTIONS
#
paddle_device             keyboard
adstick_device            keyboard
pedal_device              keyboard
dial_device               keyboard
trackball_device          keyboard
lightgun_device           keyboard
positional_device         keyboard
mouse_device              mouse

#
# CORE DEBUGGING OPTIONS
#
verbose                   0
log                       0
oslog                     0
debug                     0
update_in_pause           0
debugscript               
debuglog                  0

#
# CORE COMM OPTIONS
#
comm_localhost            0.0.0.0
comm_localport            15112
comm_remotehost           127.0.0.1
comm_remoteport           15112
comm_framesync            0

#
# CORE MISC OPTIONS
#
drc                       1
drc_use_c                 0
drc_log_uml               0
drc_log_native            0
bios                      
cheat                     0
skip_gameinfo             0
uifont                    default
ui                        cabinet
ramsize                   
confirm_quit              0
ui_mouse                  1
language                  
nvram_save                1

#
# SCRIPTING OPTIONS
#
autoboot_command          
autoboot_delay            0
autoboot_script           
console                   0
plugins                   1
plugin                    
noplugin                  

#
# HTTP SERVER OPTIONS
#
http                      0
http_port                 8080
http_root                 web

#
# OSD INPUT MAPPING OPTIONS
#
uimodekey                 DEL
controller_map            none
background_input          0

#
# OSD FONT OPTIONS
#
uifontprovider            auto

#
# OSD OUTPUT OPTIONS
#
output                    auto

#
# OSD INPUT OPTIONS
#
keyboardprovider          auto
mouseprovider             auto
lightgunprovider          auto
joystickprovider          auto

#
# OSD DEBUGGING OPTIONS
#
debugger                  auto
debugger_port             23946
debugger_font             auto
debugger_font_size        0
watchdog                  0

#
# OSD PERFORMANCE OPTIONS
#
numprocessors             auto
bench                     0

#
# OSD VIDEO OPTIONS
#
video                     auto
numscreens                1
window                    1
maximize                  1
waitvsync                 0
syncrefresh               0
monitorprovider           auto

#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen                    auto
aspect                    auto
resolution                auto
view                      auto
screen0                   auto
aspect0                   auto
resolution0               auto
view0                     auto
screen1                   auto
aspect1                   auto
resolution1               auto
view1                     auto
screen2                   auto
aspect2                   auto
resolution2               auto
view2                     auto
screen3                   auto
aspect3                   auto
resolution3               auto
view3                     auto

#
# OSD FULL SCREEN OPTIONS
#
switchres                 0

#
# OSD ACCELERATED VIDEO OPTIONS
#
filter                    1
prescale                  1

#
# OpenGL-SPECIFIC OPTIONS
#
gl_forcepow2texture       0
gl_notexturerect          0
gl_vbo                    1
gl_pbo                    1
gl_glsl                   0
gl_glsl_filter            1
glsl_shader_mame0         none
glsl_shader_mame1         none
glsl_shader_mame2         none
glsl_shader_mame3         none
glsl_shader_mame4         none
glsl_shader_mame5         none
glsl_shader_mame6         none
glsl_shader_mame7         none
glsl_shader_mame8         none
glsl_shader_mame9         none
glsl_shader_screen0       none
glsl_shader_screen1       none
glsl_shader_screen2       none
glsl_shader_screen3       none
glsl_shader_screen4       none
glsl_shader_screen5       none
glsl_shader_screen6       none
glsl_shader_screen7       none
glsl_shader_screen8       none
glsl_shader_screen9       none

#
# OSD SOUND OPTIONS
#
sound                     auto
audio_latency             2

#
# PORTAUDIO OPTIONS
#
pa_api                    none
pa_device                 none
pa_latency                0

#
# CoreAudio-SPECIFIC OPTIONS
#
audio_output              auto
audio_effect0             none
audio_effect1             none
audio_effect2             none
audio_effect3             none
audio_effect4             none
audio_effect5             none
audio_effect6             none
audio_effect7             none
audio_effect8             none
audio_effect9             none

#
# OSD MIDI OPTIONS
#
midiprovider              auto

#
# OSD EMULATED NETWORKING OPTIONS
#
networkprovider           auto

#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path                 bgfx
bgfx_backend              auto
bgfx_debug                0
bgfx_screen_chains        
bgfx_shadow_mask          slot-mask.png
bgfx_lut                  lut-default.png
bgfx_avi_name             auto

#
# SDL PERFORMANCE OPTIONS
#
sdlvideofps               0

#
# SDL VIDEO OPTIONS
#
centerh                   1
centerv                   1
scalemode                 none

#
# SDL KEYBOARD MAPPING
#
keymap                    0
keymap_file               keymap.dat

#
# SDL JOYSTICK MAPPING
#
sixaxis                   0

#
# SDL LOW-LEVEL DRIVER OPTIONS
#
videodriver               auto
renderdriver              auto
audiodriver               auto
gl_lib                    /System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib

Emulated system/software

No response

Incorrect behaviour

 % mame
zsh: segmentation fault  mame

Mame crashes with a segmentation fault only if the joysticks are connected.

crashlogs.zip

With only 1 joysticks connected I was able to run mame, scroll to some games and as soon as I launched them they crashed.
I was able to play super mario bros (vs) and pacland (for like few seconds though). Then I also had a seg fault.
With two joysticks attached it doesn't even start (see above the terminal output).

With no joysticks attached it runs perfectly.

Expected behaviour

Mame doesn't crash and I play my games happily with my friends and we use joysticks!

Steps to reproduce

cd ~/mame
mame
--> seg fault if joysticks are connected

Additional details

I've installed mame 0.258 with brew.

@rb6502
Copy link
Contributor

rb6502 commented Sep 23, 2023

Is the SDL2 version up to date in brew? There were known issues with joysticks crashing in earlier versions.

@weezah
Copy link
Author

weezah commented Sep 23, 2023

it's .258 but doesn't show from which commit.

I'm building from source right now, let's see

@weezah
Copy link
Author

weezah commented Sep 23, 2023

I've build from git. I get the same results:

first try on usb->usbc adapter

matt@Matts-MBP mame % ./mame
objc[93149]: Attempt to use unknown class 0x600001c54270.
zsh: abort      ./mame
# no joystick
matt@Matts-MBP mame % ./mame
Average speed: 99.70% (40 seconds)

2nd try on mac original usb -> usbc converter

matt@Matts-MBP mame % ./mame
zsh: bus error  ./mame
matt@Matts-MBP mame % ./mame
zsh: segmentation fault  ./mame

back on the first adapter

matt@Matts-MBP mame % ./mame
zsh: segmentation fault  ./mame

Is there something special to add when building? I just ran make (after installing sdl)

@weezah
Copy link
Author

weezah commented Sep 23, 2023

crashlogs2.zip

here's the logs

@cuavas
Copy link
Member

cuavas commented Sep 23, 2023

The question is whether the SDL2 framework is up-to-date. What exact version of SDL2 do you have installed?

@rb6502
Copy link
Contributor

rb6502 commented Sep 23, 2023

Yes. "brew list sdl2" will show the installed version. On my system, I get "/usr/local/Cellar/sdl2/2.28.3/bin/sdl2-config", meaning I have 2.28.3, the latest.

@weezah
Copy link
Author

weezah commented Sep 24, 2023

I also get the same from brew.
/opt/homebrew/Cellar/sdl2/2.28.3/bin/sdl2-config

I didn't know I had it from brew, so before building I've download and installed the latest one from the sdl2 website into /Library/Frameworks/. That's also 2.28.3.

@weezah
Copy link
Author

weezah commented Sep 26, 2023

`matt@10-0-0-38 mame % otool -L mame | grep SDL

@rpath/SDL2.framework/Versions/A/SDL2 (compatibility version 2801.0.0, current version 2801.3.0)`

@rb6502
Copy link
Contributor

rb6502 commented Sep 26, 2023

Ok. Can you run MAME with -verbose and paste the part of the output where it's setting up the joysticks? We've had repeated issues with cheap junk that sends invalid things according to HID specs and needs to be filtered out. Real Sony/MS/Nintendo pads work fine, of course.

Also if you could get a backtrace that would be great. You do that like this:

  • lldb mame
    (this takes a minute the first time, you'll probably need to authenticate with Touch ID as well)
  • run mame (whatever game name)
    (literally type "run mame pacman" or whatever and wait for the crash)
  • bt
    ...then paste the output.

@weezah
Copy link
Author

weezah commented Sep 26, 2023

I'll try this.

I'm not home until tomorrow night, but in the meantime I've tried with a xbox controller, and that worked.
At home I have some neogeo look-a-like chinese controllers, that's probably causing the issue, but they seem to work fine with my older macbookpro running .254

@weezah
Copy link
Author

weezah commented Sep 27, 2023

matt@10-0-0-38 mame % lldb mame
(lldb) target create "mame"
Current executable set to '/Users/matt/Projects/mame/mame' (arm64).
(lldb) run
Process 8306 launched: '/Users/matt/Projects/mame/mame' (arm64)
2023-09-27 21:19:05.329994+0200 mame[8306:902773] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000245b00> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2023-09-27 21:19:06.105464+0200 mame[8306:902938] [general] __CFRunLoopModeFindSourceForMachPort returned NULL for mode 'HIDAPI_0x117c041d0' livePort: 65539
Process 8306 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8)
    frame #0: 0x0000000100a66e80 mame`std::__1::__split_buffer<unsigned char*, std::__1::allocator<unsigned char*> >::push_front(unsigned char*&&) + 364
mame`std::__1::__split_buffer<unsigned char*, std::__1::allocator<unsigned char*> >::push_front:
->  0x100a66e80 <+364>: stur   x8, [x22, #-0x8]
    0x100a66e84 <+368>: ldr    x8, [x19, #0x8]
    0x100a66e88 <+372>: sub    x8, x8, #0x8
    0x100a66e8c <+376>: str    x8, [x19, #0x8]
Target 0: (mame) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8)
  * frame #0: 0x0000000100a66e80 mame`std::__1::__split_buffer<unsigned char*, std::__1::allocator<unsigned char*> >::push_front(unsigned char*&&) + 364
    frame #1: 0x00000001081cb288 mame`std::__1::deque<SDL_Event, std::__1::allocator<SDL_Event> >::__add_back_capacity() + 480
    frame #2: 0x00000001081cb010 mame`event_based_device<SDL_Event>::queue_events(SDL_Event const*, int) + 216
    frame #3: 0x0000000108251934 mame`event_subscription_manager<SDL_Event, unsigned int>::dispatch_event(unsigned int const&, SDL_Event const&) + 284
    frame #4: 0x0000000108251064 mame`sdl_osd_interface::process_events() + 124
    frame #5: 0x00000001081c7b18 mame`non-virtual thunk to input_module_base::poll_if_necessary(bool) + 80
    frame #6: 0x00000001081daba8 mame`osd_common_t::poll_input_modules(bool) + 36
    frame #7: 0x0000000108191f84 mame`video_manager::frame_update(bool) + 136
    frame #8: 0x00000001080f2c84 mame`running_machine::start() + 676
    frame #9: 0x00000001080f3e04 mame`running_machine::run(bool) + 400
    frame #10: 0x00000001036e4e1c mame`mame_machine_manager::execute() + 540
    frame #11: 0x000000010312e758 mame`cli_frontend::start_execution(mame_machine_manager*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) + 540
    frame #12: 0x000000010312fae8 mame`cli_frontend::execute(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 84
    frame #13: 0x00000001036e608c mame`emulator_info::start_frontend(emu_options&, osd_interface&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 48
    frame #14: 0x00000001082520d8 mame`main + 152
    frame #15: 0x000000018e57bf28 dyld`start + 2236

@weezah
Copy link
Author

weezah commented Sep 27, 2023

I gave it another run with tetris grandmaster

(lldb) run 
There is a running process, kill it and restart?: [Y/n] y
Process 8306 exited with status = 9 (0x00000009) 
Process 8314 launched: '/Users/matt/Projects/mame/mame' (arm64)
2023-09-27 21:20:45.817127+0200 mame[8314:903912] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000216740> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Caught unhandled exception
Caught unhandled exception
2023-09-27 21:20:46.484067+0200 mame[8314:904016] [client] No error handler for XPC error: Connection invalid
Process 8314 exited with status = 3 (0x00000003) 
(lldb) bt
error: Command requires a process which is currently stopped.
(lldb) run
Process 8318 launched: '/Users/matt/Projects/mame/mame' (arm64)
2023-09-27 21:20:53.293750+0200 mame[8318:904115] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000243500> F8BB1C28-BAE8-11D6-9C31-00039315CD46
mame(8318,0x1e9d2db40) malloc: Heap corruption detected, free list is damaged at 0x600000038000
*** Incorrect guard value: 13835075095556161407
mame(8318,0x1e9d2db40) malloc: *** set a breakpoint in malloc_error_break to debug
Process 8318 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x000000018e89c724 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`:
->  0x18e89c724 <+8>:  b.lo   0x18e89c744               ; <+40>
    0x18e89c728 <+12>: pacibsp 
    0x18e89c72c <+16>: stp    x29, x30, [sp, #-0x10]!
    0x18e89c730 <+20>: mov    x29, sp
Target 0: (mame) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x000000018e89c724 libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x000000018e8d3c28 libsystem_pthread.dylib`pthread_kill + 288
    frame #2: 0x000000018e7e1ae8 libsystem_c.dylib`abort + 180
    frame #3: 0x000000018e702e28 libsystem_malloc.dylib`malloc_vreport + 908
    frame #4: 0x000000018e7195d4 libsystem_malloc.dylib`malloc_zone_error + 104
    frame #5: 0x000000018e711148 libsystem_malloc.dylib`nanov2_guard_corruption_detected + 44
    frame #6: 0x000000018e710344 libsystem_malloc.dylib`nanov2_allocate_outlined + 404
    frame #7: 0x0000000197d2753c Metal`MTLDispatchListAppendBlock + 44
    frame #8: 0x0000000117fa5244 AppleMetalOpenGLRenderer`gldEndPrimitiveBuffer(GLDContextRec*, unsigned int, unsigned int, int) + 8820
    frame #9: 0x00000001f2dcdbb0 GLEngine`glDrawArrays_IMM_Exec + 1208
    frame #10: 0x0000000192556bd0 AppKit`-[NSIOAccelSurface frontBuffer] + 1228
    frame #11: 0x0000000192555cd8 AppKit`-[NSCGLSurface flushRect:] + 604
    frame #12: 0x00000001925559c4 AppKit`NSCGLSurfaceFlush + 132
    frame #13: 0x00000001f2d1b094 GLEngine`glSwap_Exec + 244
    frame #14: 0x00000001f2b163bc OpenGL`CGLFlushDrawable + 64
    frame #15: 0x0000000191e85000 AppKit`-[NSOpenGLContext flushBuffer] + 28
    frame #16: 0x00000001155b37c8 SDL2`___lldb_unnamed_symbol1698 + 276
    frame #17: 0x0000000108222a30 mame`osd::(anonymous namespace)::renderer_ogl::draw(int) + 4288
    frame #18: 0x0000000108254640 mame`sdl_window_info::update() + 576
    frame #19: 0x0000000108252bc0 mame`sdl_osd_interface::update(bool) + 68
    frame #20: 0x0000000108192100 mame`video_manager::frame_update(bool) + 516
    frame #21: 0x00000001037876b8 mame`mame_ui_manager::display_startup_screens(bool) + 5068
    frame #22: 0x00000001080f3f1c mame`running_machine::run(bool) + 680
    frame #23: 0x00000001036e4e1c mame`mame_machine_manager::execute() + 540
    frame #24: 0x000000010312e758 mame`cli_frontend::start_execution(mame_machine_manager*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) + 540
    frame #25: 0x000000010312fae8 mame`cli_frontend::execute(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 84
    frame #26: 0x00000001036e608c mame`emulator_info::start_frontend(emu_options&, osd_interface&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 48
    frame #27: 0x00000001082520d8 mame`main + 152
    frame #28: 0x000000018e57bf28 dyld`start + 2236

@weezah
Copy link
Author

weezah commented Sep 28, 2023

just a note: running mame (with the ui) loads the joysticks, while running mame game doesn't.

@cuavas
Copy link
Member

cuavas commented Sep 28, 2023

The first stack trace looks a lot like memory corruption. The actual bug likely did the damage long before the point where it crashed. The second one I have no idea what would cause it to crash there (could be memory corruption as well).

@MistyDreams
Copy link

MistyDreams commented Sep 28, 2023

There is an issue on arm with char defaulting to unsigned on android and the pi (not sure on macos ). It causes issues in many places such as brapboys not booting and random places and certain inputs not working working in some games.

Try adding ARCHOPTS="-fsigned-char" to the compile command line and see if that helps. Im not saying this is the issue on the mac but its is on android and pi. I dont use mac but its worth a test. https://developer.arm.com/documentation/den0013/d/Porting/Miscellaneous-C-porting-issues/unsigned-char-and-signed-char?lang=en

@weezah
Copy link
Author

weezah commented Sep 29, 2023

That didn't work

@MistyDreams
Copy link

Sorry for wasting you time with that, its certainly causes issues an a few things on android and the pi.

@weezah
Copy link
Author

weezah commented Sep 29, 2023

no worries!

@weezah
Copy link
Author

weezah commented Sep 29, 2023

anyways: I've tried with logitech Precision joypads and also get seg faults.

`(lldb) run ssideki2
Process 2292 launched: '/Users/matt/Projects/mame/mame' (arm64)
2023-09-29 16:27:45.075347+0200 mame[2292:1390610] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000213060> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Process 2292 stopped

  • thread Update winos.c #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8d6580018f8df55c)
    frame #0: 0x00000001155fe88c SDL2___lldb_unnamed_symbol2974 + 108 SDL2___lldb_unnamed_symbol2974:
    -> 0x1155fe88c <+108>: ldr x10, [x10, #0x10]
    0x1155fe890 <+112>: add w8, w8, #0x1
    0x1155fe894 <+116>: cbnz x10, 0x1155fe888 ; <+104>
    0x1155fe898 <+120>: str x21, [x9, #0x10]
    Target 0: (mame) stopped.
    (lldb) bt
  • thread Update winos.c #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8d6580018f8df55c)
    • frame #0: 0x00000001155fe88c SDL2___lldb_unnamed_symbol2974 + 108 frame #1: 0x0000000191a9d734 IOKit__IOHIDDeviceInputReportApplier + 72
      frame Update x68k.c #2: 0x000000018e97bbcc CoreFoundation__CFSetApplyFunction_block_invoke + 28 frame #3: 0x000000018e97b9e4 CoreFoundationCFBasicHashApply + 148
      frame Update h8_adc.c #4: 0x000000018e97b928 CoreFoundationCFSetApplyFunction + 320 frame #5: 0x0000000191a9d604 IOKit__IOHIDDeviceInputReportWithTimeStampCallback + 148
      frame Ignore Thumbs.db (nw) #6: 0x000000012cf0f6b8 IOHIDLib___lldb_unnamed_symbol530 + 548 frame #7: 0x000000018e9e2300 CoreFoundation__CFMachPortPerform + 296
      frame Support for the BEXT instruction #8: 0x000000018e9b2ca0 CoreFoundation__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 60 frame #9: 0x000000018e9b2bc0 CoreFoundation__CFRunLoopDoSource1 + 520
      frame Fix frequency for X1-010 and add a note. #10: 0x000000018e9b15a0 CoreFoundation__CFRunLoopRun + 2240 frame #11: 0x000000018e9b058c CoreFoundationCFRunLoopRunSpecific + 612
      frame ec1841: change keyboard xtal freq, add speech synthesis swre #12: 0x00000001981e5df4 HIToolboxRunCurrentEventLoopInMode + 292 frame #13: 0x00000001981e5a84 HIToolboxReceiveNextEventCommon + 220
      frame mc1502: restore fdc support for newer hw revisions with bios 5.3x #14: 0x00000001981e5988 HIToolbox_BlockUntilNextEventMatchingListInModeWithFilter + 76 frame #15: 0x0000000191bcff58 AppKit_DPSNextEvent + 636
      frame MDA clone has downloadable fonts and both CGA clones have unique chargens. #16: 0x0000000191bcf0f4 AppKit-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716 frame #17: 0x00000001155a6930 SDL2___lldb_unnamed_symbol1480 + 88
      frame isa_hdc: implement WRITESBUFF command #18: 0x00000001155a6bcc SDL2___lldb_unnamed_symbol1482 + 56 frame #19: 0x000000011562418c SDL2___lldb_unnamed_symbol3387 + 40
      frame isa_hdc: ec1841 compatibility #20: 0x0000000108250ac8 mamesdl_osd_interface::input_update(bool) + 24 frame #21: 0x0000000108192118 mamevideo_manager::frame_update(bool) + 540
      frame ti85: use direct update handler to remove boot memory mapping hacks #22: 0x000000010815fb28 mamescreen_device::vblank_begin(int) + 220 frame #23: 0x0000000108158b54 mamedevice_scheduler::execute_timers() + 172
      frame Convert to UTF-8. #24: 0x000000010815886c mamedevice_scheduler::timeslice() + 1048 frame #25: 0x00000001080f3fbc mamerunning_machine::run(bool) + 840
      frame Man pages (*nix): Fixed some typos and bumped version to 0.155 #26: 0x00000001036e4e1c mamemame_machine_manager::execute() + 540 frame #27: 0x000000010312e758 mamecli_frontend::start_execution(mame_machine_manager*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&) + 540
      frame SEGA YBoard: Mapping the port bits used to provide motor movement feedback #28: 0x000000010312fae8 mamecli_frontend::execute(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) + 84 frame #29: 0x00000001036e608c mameemulator_info::start_frontend(emu_options&, osd_interface&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >&) + 48
      frame naomi.c: #30: 0x00000001082520d8 mamemain + 152 frame #31: 0x000000018e57bf28 dyldstart + 2236`

@weezah
Copy link
Author

weezah commented Oct 3, 2023

Just to resume:

I've tried different versions of mame (.249, .258, .258) both from sdlmame website or by compiling them.

  • Works fine without joypad
  • Works fine with XBox joypad via bluetooth
  • Crashes with my neogeo clones joysticks (usb)
  • Crashes with my logitech precision joypads (usb)

Is anything else I can test?
Can I print out the stuff I get from the joypads with PySDL2?
Is possible to have make spit out a xcode project and debug with that? (i'm not too eager to use lldb :D )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants