+
    Ki6  c                   s6   R t ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ]P*                  P-                  ]P.                  R4      t]P*                  P-                  ]R4      tRR ltR tRR lt ! R R]
4      tR# )zRunner for MAMEN)gettext)runtimesettings)GameConfigError)Runner)system)	AsyncCall)logger)get_supported_systems)split_argumentsmamemame.xmlc                 s   \         P                  ! \        4      '       g   \         P                  ! \        4       \         P                  ! \        R R7      '       d   V '       g   R# \
        P                  ! R\        4       \        4       pVP                  4        \         P                  ! \        4      ^ 8X  d   \
        P                  ! R\        4       R# R # )TZexclude_emptyFz&Writing full game list from MAME to %sz!MAME did not write anything to %s)r   path_existsMAME_CACHE_DIRZcreate_folderMAME_XML_PATHr   infor
   write_xml_listZget_disk_sizewarning)Zforce	mame_inst   & 8/usr/lib/python3.14/site-packages/lutris/runners/mame.pywrite_mame_xmlr      s    n--^,-t<<U
KK8-HIM*a/:MJ    c                 s    V'       d   \         P                  ! R 4       R# V '       d   \         P                  ! R4       R# R# )zFailed writing MAME XMLzFinished writing MAME XMLN)r   errorr   )resultr   s   &&r   notify_mame_xmlr   !   s'    ./	/0 
r   c              #  s  "   \         P                  ! \        RR7      '       g7   \        4       pVP	                  4       '       d   \        \        \        4       . # \        \        \        4      P                  4       R R7       Fv  w  r#VR,          P                  VR,          4      '       d   RpMRpVR	,          pV '       d
   VR
,          pWC,          pVP                  RR4      P                  4       pWR3x  Kx  	  R# 5i)z0Return list of systems for inclusion in dropdownTr   c                 sB    V ^,          R,          V ^,          R,          3# )i   manufacturerdescription )Zsys   &r   Z<lambda>Z$get_system_choices.<locals>.<lambda>1   s    Q/Q1FGr   )Zkeyr   r    z%(manufacturer)s z%(description)sz	 %(year)sz	<generic>N)r   r   r   r
   Zis_installedr   r   r   Zsortedr   Zitems
startswithZreplaceZstrip)include_yearr   Z	system_idr   ZtemplateZsystem_name   &     r   get_system_choicesr#   (   s     m4@@F	!!##no6	!m,224G	 ))$~*>??H*H%%#Ho!))+r:@@B&&s   CD <D c                   s  a a ] tR t^?t oRt]! R4      t]! R4      tRtRt	Rt
]P                  P                  R4      t]P                  P                  ]P"                  R 4      t]P                  P                  ]R4      t. tR	R
RRR]! R4      /R	RRRR]! R4      R]R]! R4      /R	RRRR]! R4      R. ]! R4      R3N]! R4      R3N]! R4      R3N]! R4      R3N]! R 4      R!3N]! R"4      R#3N]! R$4      R%3N]! R&4      R'3N]! R(4      R)3N]! R*4      R+3N]! R,4      R-3N]! R.4      R/3N]! R04      R13N]! R24      R33N]! R44      R53N]! R64      R73N]! R84      R93N]! R:4      R;3N]! R<4      R=3N]! R>4      R?3N]! R@4      RA3N]! RB4      RC3N]! RD4      RE3N]! RF4      RG3N]! RH4      RI3N]! RJ4      RK3N]! RL4      RM3N]! RN4      RO3N]! RP4      RQ3N]! RR4      RS3N]! RT4      RU3N]! RV4      RW3N]! RX4      RY3N]! RZ4      R[3N]! R\4      R]3N]! R^4      R_3N]! R`4      Ra3N]! Rb4      Rc3N]! Rd4      Re3N]! Rf4      Rg3N]! Rh4      Ri3N/R	RjRRkR]! Rl4      R]! Rm4      /R	RnRRkRRoRRp/R	RqRRkRr]! Rs4      R]! Rt4      R]! Ru4      /R	RvRRwRr]! Rs4      R]! Rx4      RY^ Ry^x/.tR	RzRR{R]! R|4      R]! R}4      /R	R~RRRr]! R4      R]! R4      RR/R	RRRRr]! R4      R]! R4      R]! R4      RR/R	RRRRr]! R4      R]! R4      R]! R4      RRRR/R	RRRRr]! R4      R]! R4      R]! R4      R3RRR]! R4      R33RR/R	RRRRr]! R4      R]! R4      R]! R4      RRRR/R	RRRR]! R4      R]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3]! R4      R3.
RRRRR]! R4      /.t]R 4       t]R 4       tRV 3R llt]R 4       tR tR tR tR t R t!Rt"Vt#V ;t$# )r
   zMAME runnerZMAMEzArcade game emulatorz	mame/mamezorg.mamedev.MAMETz~/.mamer   Zoption	main_fileZtypeZfileZlabelzROM filemachineZchoice_with_searchZMachineZchoicesZhelpzThe emulated machine.deviceZchoice_with_entryzStorage typezFloppy diskZflopzFloppy drive 1Zflop1zFloppy drive 2Zflop2zFloppy drive 3Zflop3zFloppy drive 4Zflop4zCassette (tape)ZcasszCassette 1 (tape)Zcass1zCassette 2 (tape)Zcass2Z	CartridgeZcartzCartridge 1Zcart1zCartridge 2Zcart2zCartridge 3Zcart3zCartridge 4Zcart4ZSnapshotZsnapshotz	Hard DiskZhardzHard Disk 1Zhard1zHard Disk 2Zhard2zCD-ROMZcdrmzCD-ROM 1Zcdrm1zCD-ROM 2Zcdrm2zSnapshot (dump)ZdumpZ	QuickloadZ	quickloadzMemory CardZmemcZCylinderZcylnzPunch Tape 1Zptap1zPunch Tape 2Zptap2z	Print OutZprinZ	romimage1Zrom1Z	romimage2Zrom2Z	romimage3Zrom3Z	romimage4Zrom4Z	romimage5Zrom5ZmidiinZminZmidioutZmoutZ	bitbangerZbitbZ
microtape1Zutap1Z
microtape2Zutap2Zmagtape1Zmtap1Zmagtape2Zmtap2Zmagtape3Zmtap3Zmagtape4Zmtap4argsZstringZ	Argumentsz3Command line arguments used when launching the gameslotszSlot Systemz-For slot devices that is needed for romsloadsautoboot_commandZsectionZAutobootzAutoboot commandz\Autotype this command when the system has started, an enter keypress is automatically added.autoboot_delayZrangez&Delay before entering autoboot commandZmaxrompathZ	directoryzROM/BIOS pathzChoose the folder containing ROMs and BIOS files.
These files contain code from the original hardware necessary to the emulation.
fullscreenZboolZGraphicsZ
FullscreenZdefaultcrtzCRT effect ()z<Applies a CRT effect to the screen.Requires OpenGL renderer.FverboseZ	DebuggingZVerbosez*display additional diagnostic information.ZadvancedvideochoicezVideo backendZAutor   openglZSoftwareZsoft	waitvsynczWait for VSyncz^Enable waiting for  the  start  of  vblank  before flipping  screens; reduces tearing effects.	uimodekeyzMenu mode keyzScroll LockZSCRLOCKzNum LockZNUMLOCKz	Caps LockZCAPSLOCKZMenuZMENUzRight ControlZRCONTROLzLeft ControlZLCONTROLz	Right AltZRALTzLeft AltZLALTzRight SuperZRWINz
Left SuperZLWINzYKey to switch between Full Keyboard Mode and Partial Keyboard Mode (default: Scroll Lock)c                s^    \         P                  P                  \        P                  R 4      # )r
   )ospathjoinr   Z
RUNNER_DIRselfr   r   working_dirZmame.working_dir   s    ww||H//88r   c                s   V P                   '       d   V P                  # \        R R7       Uu. uF  q^ ,          NK  	  upV n         V ;P                   \        R4      \        R4      .,          un         V P                   # u upi )Fr!   ArcadeNintendo Game & Watch)
_platforms	platformsr#   _)r8   r0   r   r   r>   Zmame.platforms   sd    ???>>!3ESX3YZ3Y!993YZAhK+B)CDD [s   A?c                s8   <a V3R  lp\         SV `  WVR7       R# )c                  s8   <a  V V3R  lp\        \        V4       R# )c                 s>   < \        W4       S'       d	   S! S!   R # R # )N)r   )r   r   r'   callbacks   &&r   on_mame_readyZ@mame.install.<locals>.on_runner_installed.<locals>.on_mame_ready  s    .dO r   N)r   r   )r'   rA   r@   s   j r   on_runner_installedZ)mame.install.<locals>.on_runner_installed  s    $
 nm4r   )versionr@   N)Zsuperinstall)r8   Zinstall_ui_delegaterC   r@   rB   	__class__s   &&&f r   rD   Zmame.install  s    	5 	+GZ[r   c                s    V P                   P                  R4      pV'       d    \        P                  P	                  V4      # V P
                  P                  R4      # )z1Return the default path, use the runner's rompathr$   r+   )game_configgetr4   r5   dirnamerunner_config)r8   r$   r   r   default_pathZmame.default_path  sG     $$((5	77??9--!!%%i00r   c                s   \         P                  ! 4       pV P                  4       R.,           p\        P                  ! V P
                  RR7       \        P                  ! W!R7      w  r4V'       d^   \        V P                  RRR7      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! R	V P                  4       R# \        P                  ! R
V4       R#   + '       g   i     LL; i)z'Write the full game list in XML to diskz-listxmlT)Zexist_ok)envZwzutf-8)ZencodingNzMAME XML list written to %sz-Couldn't get any output for mame -listxml: %s)r   get_envget_commandr4   makedirs	cache_dirr   Zexecute_with_errorZopenxml_pathZwriter   r   r   )r8   rK   Zlistxml_commandZoutputZerror_outputZxml_filer"   r   r   Zmame.write_xml_list  s    oo**,
|;
DNNT2%88RdmmS7;;xv& <KK5t}}ENNJLY	 <;s   C''C7	c                s.   V P                   P                  R 4      pV'       d   V P                  \        V4      ,          # V P                   P                  R4      '       dL   \	        RR7       Uu/ uF  q"^,          V^ ,          bK  	  ppVP                  V P                   R,          4      # \
        P                  P                  V P                   P                  RR4      4      pVP                  R4      '       d   \        R4      # \        R4      # u upi )	Zplatformr%   Fr:   r$   r   Zgnw_r<   r;   )
rF   rG   r>   Zintr#   r4   r5   basenamer    r?   )r8   Zselected_platformr0   Zmachine_mappingZrom_files   &    r   get_platformZmame.get_platform"  s     ,,00<>>#&7"899	**BTbgBhiBhay&)3BhOi #&&t'7'7	'BCC77##D$4$4$8$8b$IJv&&,--{ js   /Dc                s   \         P                  ! \        P                  P	                  V P
                  R 4      4      '       g|    \        P                  ! V P
                  4       \         P                  ! V P                  4       RRV P
                  .,           \        P                  ! 4       V P                  R7       R# R#   \         d     Lii ; i)zmame.iniz-createconfig-inipath)rK   ZcwdN)r   r   r4   r5   r6   
config_dirrN   ZOSErrorZexecuterM   r   rL   r9   r7   r   r   	prelaunchZmame.prelaunch0  s    !!"'',,t
"KLLDOO, NN  "oz4??%SSOO%$$ M  s    C CCc                s    . p\         P                  P                  V P                  RV4      p\	        V4       F5  w  rVVRRV,          \         P                  P                  WF4      .,          pK7  	  V# )z;Returns a list of CLI parameters to apply a list of shadersshadersz-gl_glslz-glsl_shader_mame%s)r4   r5   r6   r9   Z	enumerate)r8   Z
shader_dirrV   ZparamsZshader_pathZindexZshaders   &&&    r   get_shader_paramsZmame.get_shader_params<  s]    ggll4#3#3Y
K&w/MEz#85#@"'',,{BcddF 0r   c                sd   V P                  4       R RV P                  .,           pV P                  P                  R4      '       d   VRV P                  R,          .,          pV P                  P                  R4      '       g   VP	                  R4       V P                  P                  R4      '       d   VP	                  R4       V P                  P                  R4      '       d   VR	V P                  R,          .,          pV P                  P                  R
4      '       d%   WP                  R. RO4      ,          pVR.,          pV P                  P                  R4      '       d   V. RO,          pV P                  P                  R4      '       Ed   V P                  P                  R4      pV'       d   VRV.,          pVP	                  V P                  R,          4       \        V P                  P                  R4      4       F  pVP	                  V4       K  	  V P                  P                  R4      pV'       g-   \        \        R4      V P                  R,          ,          4      hV P                  P                  R4      pV'       d   VRV,           V.,          pM\        P                  P                  V P                  P                  R4      4      pV'       g   V P                  P                  R4      p\        P                  P                  V P                  P                  R4      4      pV'       g   \        \        R4      R,          4      hVRW%.,          pV P                  P                  R4      '       dj   VRV P                  R,          R,           .,          pV P                  P                  R4      '       d&   VR\        V P                  R,          4      .,          p\        V P                  P                  R4      4       F  pVP	                  V4       K  	  RV/# ) z-skip_gameinforS   r/   z-videor,   z-windowr2   z
-waitvsyncr3   z
-uimodekeyr-   zCRT-geomz-nounevenstretchr.   r%   r+   z-rompathr(   r&   zNo device is set for machine %sr$   Z-z7The path '%s' is not set. please set it in the options.r)   z-autoboot_commandz\nr*   z-autoboot_delayr'   command)ZGaussxZGaussyzCRT-geom-halation)z-verbosez-oslogz-log)rM   rT   rI   rG   ZappendrW   rF   r	   r   r?   r4   r5   rH   rQ   Zstr)r8   rX   r+   Zslot_argr&   ZromZargs   &      r   playZ	mame.playD  sH   ""$(8*doo'VV!!'**$"4"4W"=>>G!!%%l33NN9%!!+..NN<(!!+..d&8&8&EFFG!!%((--j:cddG*++G!!),,55G	**((,,Y7GJ00NN4++I67+D,<,<,@,@,IJx( K%%))(3F%a(I&JTM]M]^gMh&hii""&&{3CC&L#..ggood&6&6&:&:;&GHG,,00;''""4#3#3#7#7#DEC%a(a&ben&noo
G11G 233+T-=-=>P-QTY-YZZG##$455-s43C3CDT3U/VWW"4#3#3#7#7#?@CNN3 A 7##r   )r=   )ZOpenGLr1   )ZBGFXZbgfx)ZSDL2Zaccel)NN)%Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r?   Z
human_namer   Zrunner_executableZ
flatpak_idZrunnable_aloner4   r5   Z
expanduserrT   r6   r   	CACHE_DIRrO   rP   r=   r#   Zgame_optionsZrunner_optionsZpropertyr9   r>   rD   rJ   r   rR   rU   rW   rY   Z__static_attributes__Z__classdictcell__Z__classcell__)rE   Z__classdict__s   @@r   r
   r
   ?   s,    6J*+K##JN##I.JX//8Iww||Iz2HJ kFQz]	
 i(Qy\)A-.	
 h'Q~& *=!6**#$g.* #$g.* #$g.	*
 #$g.* $%v.* &'1* &'1* ;(* =!7+* =!7+* =!7+* =!7+* :
+* ;(*  =!7+!*" =!7+#*$ 8f%%*& :('*( :()** $%v.+*, ;--*. =!6*/*0 :'1*2 >"G,3*4 >"G,5*6 ;(7*8 ;(9*: ;(;*< ;(=*> ;(?*@ ;(A*B 8e$C*D 9v&E*F ;(G*H <'*I*J <'*K*L :(M*N :(O*P :(Q*R :(S*	/	
b fHQ{^AKL		
 gHmD		
 (Hq}Q)*Atu	
 &Gq}Q?@13	
aXLx iKQ'A.			
 lFq}Q|_t	
 eFq}Q'ATUu	
 iFq~Qy\ABCu	
 gHq}Q'6B$ !:' x	
 kFq}Q'(Avwu	
 k'Q'=!9-:	*;,6F#?#Z0>"J/;(:'=!6*<&) yAqr%	
uNN` 9 9  	\ 1 1Z
0$ 0$r   )F)T)rZ   r4   r    r?   Zlutrisr   r   Zlutris.exceptionsr   Zlutris.runners.runnerr   Zlutris.utilr   Zlutris.util.jobsr   Zlutris.util.logr   Zlutris.util.mame.databaser   Zlutris.util.stringsr	   r5   r6   r[   r   r   r   r   r#   r
   r   r   r   <module>r\      sq     	   $ - (  & " ; /h00&9^Z81'.u$6 u$r   