Howdy, long time no see!
A few years back I cut the cord after having set up a Mac mini DVR for OTA content (I get 129 channels via antenna here in Houston!).
One of the things I did back then was set up MAME OS X for gaming. That port of MAME no longer works with the current release of OS X - while you can play and hear the games, there's no video for some reason. This weekend I installed SDLMAME (0.169) and QMC2(0.58).
My Mac mini is driving an older rear-projection HDTV that's limited to 1080i (interlaced, not progressive). I've configured the mini
to use HiDPI as it was difficult to read anything onscreen. HiDPI tricks the UI to think the display is 960x540 so text and controls appear twice as large. However, programs that know about HiDPI can take advantage of the actual resolution of 1920x1080, so things like video playback still look really good.
Even though SDLMAME was told not to change resolution, it appears it's trying to change the screen to 960x540 (I assume @60) which causes my HDTV to lose synchronization. From the verbose output:
Enter init_monitors
Adding monitor screen0 (960 x 540)
Leave init_monitors
I've tried to tell SDLMAME to use 1920x1080, but it also loses sync - I suspect it's using progressive, which my HDTV does not support. On a whim I tried putting an i after the resolution, as that's a common way to specify interlaced, but no luck:
./mame64 -switchres -resolution 1920x1080i@60
If I switch my mini to use 1080i w/out HiDPI then SDLMAME works just fine - however I can barely make out the user interface on the Mac so it's difficult to select a game via QMC2.
I did figure out a workaround - if I have it start up a game in a window, it runs just fine. From there I can click the full screen button in the window border (the green one) which successfully goes full-screen. It doesn't look as good though - I suspect it's only using 960x540, so the scaling doesn't have as much to work with, resulting in pixels being noticeably "fat" or "thin".
So what I'm trying to figure out is either:
A) how to make SDLMAME use the actual resolution of 1920x1080i and not change to the HiDPI reported 960x540, or
B) tell SDLMAME to use 1920x1080 interlaced @ 60
System: Mac mini (late 2012) with 2.6 GHz i7
OS X 10.11.2, El Capitan
output from verbose:
Setting SDL_VIDEO_GL_DRIVER = '/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib' ...
Available videodrivers: cocoa dummy
Current Videodriver: cocoa
Display #0
Renderdrivers:
opengl (0x0)
software (0x0)
Available audio drivers:
coreaudio
disk
dummy
Build version: 0.169 (Jan 5 2016)
Build architecure:
Build defines 1: SDLMAME_UNIX=1 SDLMAME_MACOSX=1 SDLMAME_DARWIN=1
Build defines 1: LSB_FIRST=1 PTR64=1 SYNC_IMPLEMENTATION=ntc
SDL/OpenGL defines: SDL_COMPILEDVERSION=2003 USE_OPENGL=1
Compiler defines A: __GNUC__=4 __GNUC_MINOR__=2 __GNUC_PATCHLEVEL__=1 __VERSION__="4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)"
Compiler defines B: __amd64__=1 __x86_64__=1
Compiler defines C: _FORTIFY_SOURCE=2
Enter init_monitors
Adding monitor screen0 (960 x 540)
Leave init_monitors
Enter sdlwindow_init
Using SDL multi-window OpenGL driver (SDL 2.0+)
Hints:
SDL_FRAMEBUFFER_ACCELERATION (null)
SDL_RENDER_DRIVER (null)
SDL_RENDER_OPENGL_SHADERS (null)
SDL_RENDER_SCALE_QUALITY (null)
SDL_RENDER_VSYNC (null)
SDL_VIDEO_X11_XVIDMODE (null)
SDL_VIDEO_X11_XINERAMA (null)
SDL_VIDEO_X11_XRANDR (null)
SDL_GRAB_KEYBOARD (null)
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS (null)
SDL_IOS_IDLE_TIMER_DISABLED (null)
SDL_IOS_ORIENTATIONS (null)
SDL_XINPUT_ENABLED (null)
SDL_GAMECONTROLLERCONFIG (null)
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS (null)
SDL_ALLOW_TOPMOST (null)
SDL_TIMER_RESOLUTION (null)
SDL_RENDER_DIRECT3D_THREADSAFE (null)
SDL_VIDEO_ALLOW_SCREENSAVER (null)
SDL_ACCELEROMETER_AS_JOYSTICK (null)
SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK (null)
SDL_VIDEO_WIN_D3DCOMPILER (null)
SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT (null)
SDL_VIDEO_MAC_FULLSCREEN_SPACES (null)
SDL_MOUSE_RELATIVE_MODE_WARP (null)
SDL_HINT_RENDER_DIRECT3D11_DEBUG (null)
SDL_VIDEO_HIGHDPI_DISABLED (null)
SDL_HINT_WINRT_PRIVACY_POLICY_URL (null)
SDL_HINT_WINRT_PRIVACY_POLICY_LABEL (null)
SDL_HINT_WINRT_HANDLE_BACK_BUTTON (null)
Leave sdlwindow_init
Enter sdl_info::create
OpenGL: Intel Inc.
OpenGL: Intel HD Graphics 4000 OpenGL Engine
OpenGL: 2.1 INTEL-10.12.13
OpenGL: texture rectangle supported
OpenGL: non-power-of-2 textures supported (new method)
OpenGL: vertex buffer supported
OpenGL: pixel buffers supported
OpenGL: framebuffer object supported
OpenGL: GLSL supported, but disabled
OpenGL: max texture size 16384 x 16384
Leave sdl_info_ogl::create
Keyboard: Start initialization
Input: Adding Kbd #0: System keyboard
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding Mouse #0: System mouse
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Input: Adding Joy #0: PLAYSTATION(R)3 Controller
Joystick: PLAYSTATION(R)3 Controller
Joystick: ... 4 axes, 19 buttons 0 hats 0 balls
Joystick: ... Physical id 0 mapped to logical id 1
Joystick: End initialization
output: opened output notifier file /tmp/sdlmame_out
Audio: Start initialization
Creating AudioUnit graph
Adding default output to AudioUnit graph
Audio: End initialization
Region ':user1' created
FONT NAME default
Matching font: Helvetica
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 1
Starting No Driver Loaded ':'
(missing dependencies; rescheduling)
Starting Video Screen ':screen'
Optional device 'finder_dummy_tag' not found
Starting No Driver Loaded ':'
Audio: Start deinitialization
Stopping CoreAudio output
Sound buffer: overflows=0 underflows=1
Audio: End deinitialization
Enter sdlwindow_exit
Leave sdlwindow_exit
Joystick: Start deinitialization
Joystick: End deinitialization
output: closed output notifier file
Thanks!