· 9 years ago · Oct 03, 2016, 11:30 AM
1[code]
213:26:08:589 | RL | INFO | +N/A | Main - RocketLauncher v1.1.1.1 (www.rlauncher.com)
313:26:08:783 | RL | INFO | +203 | Main - System Specs:
4 RocketLauncher Dir: D:\RocketLauncher
5 RocketLauncher is: 32-bit
6 OS: Microsoft Windows 10 Pro
7 SKU: Professional
8 Total Memory: 16341.65 MB
9 Free Memory: 13518.16 MB
10 Used Memory: 2823.492 MB
11 SystemType: 64-bit
12 Physical Processors: 1
13 Logical Processors: 8
14 GPU 1 Name: NVIDIA GeForce GTX 750 Ti
15 GPU 1 RAM: -2048.00 MB
16 GPU 1 Driver Version: 10.18.13.5354
17 Sound 1 Device: NVIDIA High Definition Audio
18 Sound 1 Status: Enabled
19 Sound 2 Device: Realtek High Definition Audio
20 Sound 2 Status: Enabled
21 OS Language: Spanish_Modern_Sort
22 System Locale: es-ES
23 Formats Locale: es-ES
24 Windows UI Language: es-ES
25 Text Encoding: Windows-1252
26 OS Admin Status: No
27 RL Compatibility Flags:
28 Latest .Net Version: v4.0.30319
29 Monitor #1 (\\.\DISPLAY1): 1920x1080 (1920x1040 work) [32bit] [60hz] [Landscape] (Primary)
30 Current AHK Desktop Width: 1920
31 Current AHK Desktop Height: 1080
32 Monitor #1 DPI: 100
33 ErrorMode: 0
34 AutoHotkey Path:
35 AHK Version: 1.1.13.00
36 Unicode: No
3713:26:08:783 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\RocketLauncher.exe exists
3813:26:08:784 | RL | INFO | +0 | Main - Raw CLI received: "-s MAME -r sf2ce -f D:\HyperSpin\HyperSpin.exe -p HyperSpin -c 1 -o 1"
3913:26:08:784 | RL | INFO | +0 | Main - Loading Front End Plugin: "HyperSpin"
4013:26:08:784 | RL | INFO | +0 | Main - RocketLauncher received "MAME" and "sf2ce"
4113:26:08:788 | RL | INFO | +0 | Main - Did not find a "D:\RocketLauncher\Settings\MAME\Game Options.ini" file, skipping any game-specific options.
4213:26:08:789 | RL | INFO | +0 | Main - sf2ce is using the default emulator: MAME
4313:26:08:789 | RL | INFO | +0 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\MAME\Emulators.ini
4413:26:08:789 | RL | INFO | +0 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\Global Emulators.ini
4513:26:08:789 | RL | INFO | +0 | Main - Found [MAME] in D:\RocketLauncher\Settings\Global Emulators.ini
4613:26:08:789 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Modules\MAME\MAME.ahk exists
4713:26:08:793 | RL | INFO | +0 | Main - CRC Check - CRC matches, this is an official unedited module.
4813:26:08:793 | RL | INFO | +0 | Main - sf2ce will use module: D:\RocketLauncher\Modules\MAME\MAME.ahk
4913:26:08:796 | RL | WARNING | +16 | RIniLoadVar - Created missing Global ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\Global RocketLauncher.ini"
5013:26:08:796 | RL | WARNING | +0 | RIniLoadVar - Created missing System ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\MAME\RocketLauncher.ini"
5113:26:08:816 | RL | INFO | +16 | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
5213:26:08:818 | RL | INFO | +0 | CheckFile - Checking if D:\Emulators\MAME\MAME\mame64.exe exists
5313:26:08:819 | RL | INFO | +0 | Main - INI Keys read
5413:26:08:819 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.exe exists
5513:26:08:819 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.dll exists
5613:26:08:823 | RL | INFO | +0 | Main - "sf2ce" does not qualify for MultiGame. Only roms with any of these strings in their name are acceptable: \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
5713:26:08:823 | RL | INFO | +0 | CheckPaths - Started
5813:26:08:823 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\sf2ce.7z
5913:26:08:823 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Games\Complete Sets\MAME\ROMs\sf2ce\sf2ce.7z
6013:26:08:823 | RL | INFO | +0 | CheckPaths - Rom not found
6113:26:08:823 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\sf2ce.rar
6213:26:08:823 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Games\Complete Sets\MAME\ROMs\sf2ce\sf2ce.rar
6313:26:08:823 | RL | INFO | +0 | CheckPaths - Rom not found
6413:26:08:823 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\sf2ce.zip
6513:26:08:823 | RL | INFO | +0 | CheckPaths - Found rom: D:\Games\Complete Sets\MAME\ROMs\sf2ce.zip
6613:26:08:823 | RL | INFO | +0 | CheckPaths - Ended
6713:26:08:824 | RL | INFO | +0 | BuildScript - User Variables:
68 ;----------------------------------------------------------------------------
69 ; INJECTED VARIABLES
70 ;----------------------------------------------------------------------------
71
72 #NoTrayIcon
73 #InstallKeybdHook
74 MiscUtils.DetectHiddenWindows("On")
75 SetTitleMatchMode, 2
76 SendMode, Event
77 0 = 12
78 rlPath = D:\RocketLauncher
79 pluginPath = D:\RocketLauncher\Plugins
80 pluginName = HyperSpin
81 pluginExt = .plugin
82 contextOnExit = 1
83 rlMode =
84 rlTitle = RocketLauncher
85 rlVersion = 1.1.1.1
86 rlAuthor = djvj
87 rlURL = www.rlauncher.com
88 langFile = D:\RocketLauncher\Data\Language\Localization.ini
89 primMonitor = 1
90 frontendPID =
91 frontendPath = D:\HyperSpin
92 frontendExe = HyperSpin.exe
93 frontendExt = exe
94 frontendName = HyperSpin
95 frontendDrive = D
96 exitEmulatorKey = ~Esc
97 restoreFE = Restore
98 exitScriptKey = ~q & ~s
99 toggleCursorKey = ~e & ~t
100 emuFullPath = D:\Emulators\MAME\MAME\mame64.exe
101 emuPath = D:\Emulators\MAME\MAME
102 emuName = MAME
103 emuExt = exe
104 baseRomPath =
105 romPath = D:\Games\Complete Sets\MAME\ROMs
106 romPathFromIni = D:\Games\Complete Sets\MAME\ROMs
107 romExtension = .zip
108 romExtensionOrig = .zip
109 romExtensions = 7z|rar|zip|chd|cue|32x|a26|a52|a78|bin|caq|col|cpr|gg|gb|gba|gbc|int|lnx|rom|sms|st2|md|j64|n64|nes|ngc|ngp|pce|sfc|sv|vb|vec|ws|wsc|min|sg|vms|d88|smc|uef|dsk|atr|tap|bas|cas|bin|snp|d77|wav|sad|k7|2d|xst|p|ccc|tgc
110 executable = mame64.exe
111 systemDbName = MAME
112 systemName = MAME
113 dbPath =
114 dbName = sf2ce
115 dbExt =
116 romName = sf2ce
117 romMapPath =
118 romMappingEnabled = false
119 romMappingLaunchMenuEnabled = false
120 romMappingFirstMatchingExt = false
121 romMappingShowAllRomsInArchive = true
122 romMappingNumberOfGamesByScreen = 7
123 romMappingHideParent = false
124 romMappingMenuWidth = 400
125 romMappingMenuMargin = 65
126 romMappingTextFont = Bebas Neue
127 romMappingTextOptions = cFFFFFFFF r4 s60 Bold
128 romMappingDisabledTextColor = ff888888
129 romMappingTextSizeDifference = 7
130 romMappingTextMargin = 15
131 romMappingTitleTextFont = Bebas Neue
132 romMappingTitleTextOptions = cFFFFFFFF r4 s90 Bold
133 romMappingTitle2TextFont = Bebas Neue
134 romMappingTitle2TextOptions = cFFFFFFFF r4 s22 Bold
135 romMappingGameInfoTextFont = Bebas Neue
136 romMappingGameInfoTextOptions = cFFFFFFFF r4 s22 Regular
137 romMappingGameNameTextFont = Bebas Neue
138 romMappingGameNameTextOptions = cFFFFFFFF r4 s40 Regular
139 romMappingBackgroundBrush = aa000000
140 romMappingColumnBrush = 33000000
141 romMappingButtonBrush1 = 6f000000
142 romMappingButtonBrush2 = 33000000
143 romMappingBackgroundAlign = Stretch and Lose Aspect
144 romMappingMenuFlagWidth = 55
145 romMappingMenuFlagSeparation = 7
146 romMappingDefaultMenuList = FullList
147 romMappingSingleFilteredRomAutomaticLaunch = false
148 altArchiveNameOnly =
149 altRomNameOnly =
150 altArchiveAndRomName =
151 altArchiveAndManyRomNames =
152 altRomNamesOnly =
153 romMapScenario =
154 skipchecks = false
155 romMatchExt = false
156 blockInputTime = 0
157 blockInputFile = D:\RocketLauncher\Module Extensions\BlockInput.exe
158 errorLevelReporting = false
159 lockLaunch = false
160 lockLaunchGame =
161 screenRotationAngle = 0
162 screenRotationAngleGame =
163 setResolution = 1|1920|1080|32|60
164 logFile =
165 logLabel := [" INFO"," WARNING"," ERROR"," DEBUG"," TRACE"]
166 logLevel = 2
167 logShowDebugConsole = false
168 logShowCommandWindow = false
169 logCommandWindow = false
170 logIncludeModule = true
171 logIncludeFileProperties = true
172 logIncludeDLLLogs = false
173 errorSounds = true
174 rlDebugConsoleStdout =
175 sysLang = Spanish_Modern_Sort
176 sysType = 64-bit
177 broadcastWindowTitle =
178 navUpKey = Up
179 navDownKey = Down
180 navLeftKey = Left
181 navRightKey = Right
182 navSelectKey = Enter
183 navP2UpKey = Numpad8
184 navP2DownKey = Numpad2
185 navP2LeftKey = Numpad4
186 navP2RightKey = Numpad6
187 navP2SelectKey = NumpadEnter
188 originalWidth = 1920
189 originalHeight = 1080
190 vdEnabled = false
191 vdFullPath =
192 vdUseSCSI = true
193 vdDriveLetter =
194 vdDriveLetterScsi =
195 vdAddDrive = true
196 demulShooterPath =
197 servoStikEnabled = false
198 servoStikExitMode = false
199 ledblinkyEnabled = All
200 ledblinkySystemName =
201 ledblinkyFullPath = D:\Utilities\3rd Party\LEDBlinky\LEDBlinky\LEDBlinky.exe
202 ledblinkyProfilePath = D:\RocketLauncher\Profiles\LEDBlinky
203 ledblinkyRLProfile = D:\RocketLauncher\Profiles\LEDBlinky\RocketLauncher
204 winIPACFullPath = C:\Program Files (x86)\WinIPAC V2\WinIPAC.exe
205 ultraMapEnabled = false
206 ultraMapFullPath =
207 emuIdleShutdown = 0
208 launchPasswordHash = UpUpDownDownLeftRightLeftRight
209 hideCursor = false
210 hideEmu = false
211 hideFE = false
212 suspendFE = false
213 fadeIn = true
214 fadeInDuration = 500
215 fadeInTransitionAnimation = DefaultAnimateFadeIn
216 fadeInDelay = 0
217 fadeInExitDelay = 0
218 fadeOutExitDelay = 0
219 fadeOut = true
220 fadeOutExtraScreen = false
221 fadeOutDuration = 500
222 fadeOutTransitionAnimation = DefaultAnimateFadeOut
223 fadeOutDelay = 0
224 fadeLyrInterpolation = 7
225 fadeMuteEmulator = false
226 fadeUseBackgrounds = false
227 fadeClickThrough = false
228 fadeSounds = true
229 fade7zProgressMode = extraction
230 fadeWidthBaseRes = 1920
231 fadeHeightBaseRes = 1080
232 fadeLyr1Color = FF000000
233 fadeLyr1AlignImage = Stretch and Lose Aspect
234 fadeLyr2Pos = Stretch and Lose Aspect
235 fadeLyr2X = 0
236 fadeLyr2Y = 0
237 fadeLyr2W =
238 fadeLyr2H =
239 fadeLyr2Adjust = 1
240 fadeLyr2PicPad = 0
241 fadeLyr2Prefix = Extra Layer 1 - Console
242 fadeLyr3Pos = Center
243 fadeLyr3X = 450
244 fadeLyr3Y = 450
245 fadeLyr3W =
246 fadeLyr3H =
247 fadeLyr3Adjust = 1
248 fadeLyr3PicPad = 0
249 fadeLyr3Speed = 750
250 fadeLyr3Animation = DefaultFadeAnimation
251 fadeLyr37zAnimation = DefaultFadeAnimation
252 fadeLyr3Type = imageandbar
253 fadeLyr3ImgFollow7zProgress = true
254 fadeLyr3Repeat = 1
255 fadeLyr3BackImageTransparency = 30
256 fadeLyr3StaticPos = No Alignment
257 fadeLyr3StaticX = 0
258 fadeLyr3StaticY = 870|1575
259 fadeLyr3StaticW =
260 fadeLyr3StaticH =
261 fadeLyr3StaticAdjust = 1
262 fadeLyr3StaticPicPad = 0
263 fadeLyr3StaticPrefix = Info Bar
264 fadeLyr4Adjust = 1
265 fadeLyr4X = 1792|952
266 fadeLyr4Y = 891|1596
267 fadeLyr4W = 128
268 fadeLyr4H =
269 fadeLyr4Pos = No Alignment
270 fadeLyr4FPS = 50
271 fadeLyr4PicPad = 0
272 fadeTranspGifColor = FFFFFF
273 fadeBarWindow = Image
274 fadeBarWindowX =
275 fadeBarWindowY =
276 fadeBarWindowW = 900
277 fadeBarWindowH =
278 fadeBarWindowR = 30
279 fadeBarWindowM = 30
280 fadeBarWindowHatchStyle = 8
281 fadeBar = 7zOnly
282 fadeProgressDuration = 0
283 fadeBarBack = true
284 fadeBarBackColor = FF555555
285 fadeBarH = 30
286 fadeBarR = 10
287 fadeBarColor = DD00BFFF
288 fadeBarHatchStyle = 8
289 fadeBarPercentageText = true
290 fadeBarInfoText = true
291 fadeBarXOffset = 0
292 fadeBarYOffset = 150
293 fadeRomInfoDescription = filtered text
294 fadeRomInfoSystemName = image
295 fadeRomInfoYear = text with label
296 fadeRomInfoDeveloper = disabled
297 fadeRomInfoPublisher = disabled
298 fadeRomInfoGenre = disabled
299 fadeRomInfoRating = image
300 fadeRomInfoOrder = Description|SystemName|Year|Developer|Genre|Rating|Publisher
301 fadeRomInfoTextPlacement = User Defined
302 fadeRomInfoTextMargin = 7
303 fadeRomInfoText1Options = w1600|787 h90 x165 y870|1575 cFFE1E1E1 r4 s90 Left Regular
304 fadeRomInfoText2Options = w400 x8 y15 cFF555555 r4 s60 Bold
305 fadeRomInfoText3Options = w310 x165 y960|1665 cFFE1E1E1 r4 s66 Left Regular
306 fadeRomInfoText4Options = w1305|492 h66 x460 y960|1665 cFFE1E1E1 r4 s66 Left Regular
307 fadeRomInfoText5Options = cFF555555 r4 s42 Bold
308 fadeRomInfoText6Options = h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular
309 fadeRomInfoText7Options = h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular
310 fadeStats_Number_of_Times_Played = text with label
311 fadeStats_Last_Time_Played = text with label
312 fadeStats_Average_Time_Played = text with label
313 fadeStats_Total_Time_Played = text with label
314 fadeStats_System_Total_Played_Time = text with label
315 fadeStats_Total_Global_Played_Time = text with label
316 fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time
317 fadeStatsInfoTextPlacement = topRight
318 fadeStatsInfoTextMargin = 7
319 fadeStatsInfoText1Options = cFFB4B4B4 r4 s22 Bold
320 fadeStatsInfoText2Options = cFFB4B4B4 r4 s22 Bold
321 fadeStatsInfoText3Options = cFFB4B4B4 r4 s22 Bold
322 fadeStatsInfoText4Options = cFFB4B4B4 r4 s22 Bold
323 fadeStatsInfoText5Options = cFFB4B4B4 r4 s22 Bold
324 fadeStatsInfoText6Options = cFFB4B4B4 r4 s22 Bold
325 fadeText1X = 0
326 fadeText1Y = 0
327 fadeText1Options = cFFB4B4B4 r4 s30 Right Bold
328 fadeText1 = Loading Game
329 fadeText2X = 0
330 fadeText2Y = 0
331 fadeText2Options = cFFB4B4B4 r4 s30 Right Bold
332 fadeText2 = Extraction Complete, Ready
333 fadeText3 = Loading Game
334 fadeText4 = Loading Complete
335 fadeFont = Bebas Neue
336 fadeSystemAndRomLayersOnly = false
337 fadeExtractionTime = disabled
338 fadeExtractionTimeTextX = 0
339 fadeExtractionTimeTextY = 0
340 fadeExtractionTimeTextOptions = cFF555555 r4 s20 Bold
341 fadeInterruptKey =
342 detectFadeErrorEnabled = true
343 fadeImgPath = D:\RocketLauncher\Media\Fade
344 RLDataPath = D:\RocketLauncher\Data
345 RLMediaPath = D:\RocketLauncher\Media
346 RLErrSoundPath = D:\RocketLauncher\Media\Sounds\Error
347 modulesPath = D:\RocketLauncher\Modules
348 moduleFullName = D:\RocketLauncher\Modules\MAME\MAME.ahk
349 moduleName = MAME
350 modulePath = D:\RocketLauncher\Modules\MAME
351 moduleExtension = ahk
352 moduleExtensionsPath = D:\RocketLauncher\Module Extensions
353 libPath = D:\RocketLauncher\Lib
354 sevenZEnabled = false
355 sevenZPath = D:\RocketLauncher\Module Extensions\7z.exe
356 sevenZDllPath = D:\RocketLauncher\Module Extensions\7z.dll
357 sevenZExtractPath = D:\HyperSpin\Temp
358 sevenZExtractPathOrig =
359 sevenZAttachSystemName = true
360 sevenZDelTemp = true
361 sevenZFormats = .zip|.rar|.7z|.lzh|.gzip|.tar
362 sevenZFormatsNoP = zip|rar|7z|lzh|gzip|tar
363 sevenZFormatsRegEx = \.zip|\.rar|\.7z|\.lzh|\.gzip|\.tar
364 7zExtractPath = D:\HyperSpin\Temp
365 mgEnabled = false
366 mgKey = ~NumpadSub
367 mgBackgroundColor = FF000000
368 mgSidePadding = 0.2
369 mgWidthBaseRes = 1920
370 mgHeightBaseRes = 1080
371 mgYOffset = 500|800
372 mgFont = Arial
373 mgText1Options = x10p y250|500 w80p Center cBBFFFFFF r4 s100 BoldItalic
374 mgText1Text = Please select a game
375 mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic
376 mgText2Offset = 100
377 mgUseSound = true
378 mgSoundfreq = 300
379 mgExitEffect = none
380 mgSelectedEffect = rotate
381 mgUseGameArt = false
382 mgCandidate =
383 mgValidTypes = \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
384 mgOnLaunch = false
385 pauseEnabled = true
386 pauseKey = ~NumpadAdd
387 pauseBackToMenuBarKey = X
388 pauseZoomInKey = C
389 pauseZoomOutKey = V
390 pauseScreenshotKey = ~PrintScreen
391 pauseHiToTextPath = D:\RocketLauncher\Module Extensions\HiToText.exe
392 pauseSaveStateKeyCodes = {shift down}{F7 down}{F7 up}{shift up}{800}{a down}{a up}|{shift down}{F7 down}{F7 up}{shift up}{800}{b down}{b up}|{shift down}{F7 down}{F7 up}{shift up}{800}{c down}{c up}|{shift down}{F7 down}{F7 up}{shift up}{800}{d down}{d up}|{shift down}{F7 down}{F7 up}{shift up}{800}{e down}{e up}|{shift down}{F7 down}{F7 up}{shift up}{800}{f down}{f up}|{shift down}{F7 down}{F7 up}{shift up}{800}{g down}{g up}|{shift down}{F7 down}{F7 up}{shift up}{800}{h down}{h up}|{shift down}{F7 down}{F7 up}{shift up}{800}{i down}{i up}|{shift down}{F7 down}{F7 up}{shift up}{800}{j down}{j up}
393 pauseLoadStateKeyCodes = {F7 down}{F7 up}{800}{a down}{a up}|{F7 down}{F7 up}{800}{b down}{b up}|{F7 down}{F7 up}{800}{c down}{c up}|{F7 down}{F7 up}{800}{d down}{d up}|{F7 down}{F7 up}{800}{e down}{e up}|{F7 down}{F7 up}{800}{f down}{f up}|{F7 down}{F7 up}{800}{g down}{g up}|{F7 down}{F7 up}{800}{h down}{h up}|{F7 down}{F7 up}{800}{i down}{i up}|{F7 down}{F7 up}{800}{j down}{j up}
394 keyboardEncoder = WinIPAC
395 keyboardEncoderEnabled = true
396 keymapperEnabled = true
397 keymapperAHKMethod = false
398 keymapper = xpadder
399 xpadderFullPath = D:\Utilities\3rd Party\Xpadder\Xpadder\Xpadder.exe
400 joyToKeyFullPath = D:\Utilities\3rd Party\JoyToKey\JoyToKey\JoyToKey.exe
401 profilePath = D:\RocketLauncher\Profiles
402 keymapperProfilePath = D:\RocketLauncher\Profiles\xpadder
403 keymapperFrontEndProfileName = HyperSpin
404 keymapperFrontEndProfile = xpadder
405 keymapperRocketLauncherProfileEnabled = false
406 joyIDsEnabled = false
407 joyIDsPreferredControllersGlobal =
408 joyIDsPreferredControllersSystem = use_global
409 joyIDsPreferredControllersOnExit =
410 CustomJoyNamesEnabled = false
411 CustomJoyNames =
412 rotateMethod = false
413 FEProfile = D:\RocketLauncher\Profiles\xpadder\HyperSpin
414 defaultProfile = D:\RocketLauncher\Profiles\xpadder\_Default
415 systemProfile = D:\RocketLauncher\Profiles\xpadder\MAME
416 xPadderSystemProfile = D:\RocketLauncher\Profiles\xpadder\MAME\_Default
417 emuProfile = D:\RocketLauncher\Profiles\xpadder\MAME\MAME
418 romProfile = D:\RocketLauncher\Profiles\xpadder\MAME\sf2ce
419 RocketLauncherProfile = D:\RocketLauncher\Profiles\xpadder\RocketLauncher
420 blankProfile = D:\RocketLauncher\Profiles\xpadder\_Default\blank
421 ahkFEProfile = D:\RocketLauncher\Profiles\AHK\HyperSpin
422 ahkDefaultProfile = D:\RocketLauncher\Profiles\AHK\_Default
423 ahkSystemProfile = D:\RocketLauncher\Profiles\AHK\MAME
424 ahkEmuProfile = D:\RocketLauncher\Profiles\AHK\MAME\MAME
425 ahkRomProfile = D:\RocketLauncher\Profiles\AHK\MAME\sf2ce
426 ahkRocketLauncherProfile = D:\RocketLauncher\Profiles\AHK\RocketLauncher
427 bezelEnabled = false
428 bezelICEnabled = false
429 shaderName = false
430 shaderColor =
431 shaderTransparency =
432 statisticsEnabled = true
433 pressDuration = -1
434 emuVolume = 1
435 dxwndIni = D:\HyperSpin\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini
436 dxwndFullPath = D:\HyperSpin\RocketLauncher\Module Extensions\dxwnd\dxwnd.exe
437 qResFullPath = D:\RocketLauncher\Module Extensions\QRes.exe
438 mon1O =
439 pacDrivedllFile = D:\RocketLauncher\Module Extensions\PacDrive32.dll
440 userFadeAnimIniFile = D:\RocketLauncher\Lib\User Fade Animations.ini
441 testFile =
442 testDuration =
443 initialErrorMode = 0
444
44513:26:08:827 | RL | INFO | +15 | BuildScript - Loaded XHotkey Init.ahk scripts
44613:26:08:828 | RL | INFO | +0 | BuildScript - Loaded Keymapper Init.ahk scripts
44713:26:08:828 | RL | INFO | +0 | BuildScript - Loaded Fade Init.ahk scripts
44813:26:08:828 | RL | INFO | +0 | BuildScript - Loaded Pause Init.ahk scripts
44913:26:08:828 | RL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts
45013:26:08:828 | RL | INFO | +0 | BuildScript - Loaded User Functions Init.ahk script
45113:26:08:828 | RL | INFO | +0 | BuildScript - Validating module
45213:26:08:837 | RL | INFO | +0 | BuildScript - Validation complete
45313:26:08:837 | RL | INFO | +0 | BuildScript - Module:
454 MEmu = MAME
455 MEmuV = v0.166
456 MURL = http://www.mame.net/
457 MAuthor = djvj,faahrev,brolly,Tomkun
458 MVersion = 2.3.7
459 MCRC = 5C737136
460 iCRC = 25E2CCF
461 mId = 635746812784197028
462 MSystem = "AAE","Aamber Pegasus","Acorn Electron","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Apple II","Apple IIGS","Applied Technology MicroBee","Atari 8-Bit","Atari 2600","Atari 5200","Atari 7800","Atari Classics","Atari Jaguar","Atari Lynx","Bally Astrocade","Bandai Super Vision 8000","Bandai WonderSwan","Bandai WonderSwan Color","Bit Corporation Gamate","Camputers Lynx","Capcom","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore 64","Commodore MAX Machine","Creatronic Mega Duck","Data East Classics","EACA EG2000 Colour Genie","Emerson Arcadia 2001","Entex Adventure Vision","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Fujitsu FM-7","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","HBMAME","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Jupiter Ace","Konami Classics","LaserDisc","Magnavox Odyssey 2","MAME","Matra & Hachette Alice","Mattel Aquarius","Mattel Intellivision","MGT Sam Coupe","Midway Classics","Milton Bradley MicroVision","Namco Classics","Namco System 22","NEC PC-8801","NEC PC Engine","NEC PC Engine-CD","NEC SuperGrafx","NEC TurboGrafx-16","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Advance","Nintendo Game Boy Color","Nintendo Pokemon Mini","Nintendo Satellaview","Nintendo Super Famicom","Nintendo Super Game Boy","Nintendo Virtual Boy","Othello Multivision","PacMAME","Philips CD-i","Philips VG 5000","Philips Videopac Plus G7400","RCA Studio II","Sega 32X","Sega CD","Sega Classics","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Model 1","Sega Pico","Sega Saturn","Sega SC-3000","Sega SG-1000","Sega ST-V","Sega VMU","Sharp X1","Sinclair ZX81","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo AES","SNK Neo Geo CD","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo Pocket Color","Sony PlayStation","Sony PocketStation","Sord M5","Soundic Victory MPT-02","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Texas Instruments TI 99-4A","Tiger Game.com","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"
463 ;----------------------------------------------------------------------------
464 ; Notes:
465 ; This module now includes everything from the legacy MAME and MESS modules, but combined to match the merge of the 2 emulators that occured on version 0.162.
466 ;
467 ; Exit fade will only work correctly if you don't have Esc, the default MAME exit key, as your exit key. If you use Esc, turn off the ExitScreen
468 ; This module will set your rom paths on the fly via CLI, but you must make sure the RLUI module setting for this module "MAME_BIOS_Path" is correctly set. It defaults to your roms subfolder where MAME.exe is found.
469 ; This module assumes you have bios zip in your MAME "roms" directory, which might be different than your actual roms directory, for each system you need this module for. All tested systems listed below
470 ; If MAME has a problem reading the bios zips, try archving them with "no compression"
471 ; This site can help a ton with details for the various systems supported: http://www.progettoemma.net/mess/index.html
472 ; You may get a black screen or MAME may close w/o notice if you do not have a bios rom for your system when one is needed.
473 ; If you use bezel, it is recommended to set the module bezel mode to normal, and go to your MAME.ini file, on your emulator folder, and choose these options: artwork_crop 1, use_backdrops 1, use_overlays 1, use_bezels 0
474 ;
475 ; Command Line Options - http://easyemu.mameworld.info/mameguide/mameguide-options.html
476 ; High Scores DO NOT SAVE when cheats are enabled!
477 ; HLSL Documentation: http://mamedev.org/source/docs/hlsl.txt.html
478 ; If you use MAME for AAE, create a vector.ini in mame's ini subfolder and paste these HLSL settings in there: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=309968&page=&view=&sb=5&o=&vc=1
479 ;
480 ; Be aware that several systems will require a BIOS zip with their roms inside. They all come bundled in the MAME set so make sure you add your MAME roms folder to the
481 ; roms path for that system. If you have doubts about their filenames check the mTypeVar module variable content.
482 ;
483 ; Following systems will also require some specific files to operate properly:
484 ; APF Imagination Machine - apfimag (tape games), apfm1000 (cart games)
485 ; Camputers Lynx - lynx64k, lynx96k, lynx128k
486 ; Coleco ADAM - adam, adam_ddp, adam_fdc, adam_kb, adam_prn, adam_spi
487 ; NEC PC Engine-CD - "Super CD-ROM2 System V3.0 (J).pce" [262,656 bytes] (placed in the roms subfolder in the emuPath)
488 ; NEC TurboGrafx-CD - "Super CD-ROM2 System V3.01 (U).pce" [262,144 bytes] (placed in the roms subfolder in the emuPath)
489 ; Sega CD - segacd, megacd, megacd2j (megacd2j seems to be more compatible over megacdj)
490 ; Sony PlayStation - psa, pse, psj, psu
491 ;
492 ; Tape Control:
493 ; MAME tape/cassette emulation is terrible because normally it means you need to manually start and stop the tapes yourself so it's highly suggested that you use another emulator for such systems.
494 ; Tape control commands are accessible through the UI, press tab and then select Tape Control and you can start/stop the loaded tape from there.
495 ; The following hotkeys can also be used:
496 ; F2 - Start Tape
497 ; Left Shift + F2 - Stop Tape
498 ; Insert - While held, runs the game with throttling disabled and with the maximum frameskip. Useful to speedup the long tape loading process.
499 ;
500 ; Be aware that tape games are normally used on PC systems therefore it's likely that full keyboard emulation is enabled which means that you'll need to disable it in order to use any of the above
501 ; hotkeys. To disable it press the Scroll Lock key, press it again to enable it back.
502 ;
503 ; 7z Support:
504 ; Make sure you have 7z disabled for all MAME Arcade systems. Their roms are supposed to be archived, if you have 7z enabled then your games will fail to load. It's
505 ; fine to enable 7z to non-arcade systems.
506 ;
507 ; Custom Configuration Files:
508 ; If you want to use custom configuration files (.cfg files) for some games you will need to store them inside your MAME cfg folder using the following structure:
509 ; cfg\mame_system_name\database_rom_name\mame_system_name.cfg
510 ; An example of a game that requires specific settings is ICBM Attack for the Bally Astrocade, in this case special cfg file should be:
511 ; cfg\astrocde\I.C.B.M. Attack (USA) (Unl)\astrocde.cfg
512 ;
513 ; Ini Files:
514 ; Module will set most settings through command line which will override any settings you might have on your MAME ini files. Everything else will be read from
515 ; those. MAME supports a hierarchical ini file structure and will load settings from several ini files following a specific order:
516 ;- mame.ini
517 ;- <mymame>.ini (i.e. if MAME was renamed mame060.exe, MAME parses mame060.ini here)
518 ;- debug.ini (if the debugger is enabled)
519 ;- <parent>.ini (for clones only, may be called recursively)
520 ;- <gamename>.ini
521 ;- vertical.ini (for games with vertical monitor orientation)
522 ;- horizont.ini (for games with horizontal monitor orientation)
523 ;- vector.ini (for vector games only)
524 ;- <driver>.ini (based on the source filename of the driver)
525 ;
526 ; The settings in the later ini's override those in the earlier ini's.
527 ;
528 ; It's highly recommended that you set skipchecks to 'Rom Only" for MAME otherwise RocketLauncher won't be able to launch several games due
529 ; to the way MAME roms are packaged. This will be even more noticeable for those using merged sets.
530 ;
531 ; Bally Astrocade:
532 ; ICBM requires a soft reset (even on the real hardware) to launch. You can read about it here: http://www.ballyalley.com/ballyalley/articles/Playing_ICBM_Attack_Using_MESS.pdf
533 ; Other games might require this as well, you can enable this in the module's settings so the machine is reset automatically on launch, otherwise you need to press F3 to start the game.
534 ; Also ICBM Attack uses different controls then the rest of the games. Make sure you follow the procedure explained above under "Custom Configuration Files" to create such file.
535 ;
536 ; GCE Vectrex:
537 ; Requires a vectrex.lay and a png overlay for each game. These all need to be placed in the MAME\artwork\vectrex folder.
538 ; You can download all these pngs and the lay file in my ftp folder. You need to use the HyperList XML to match the pngs.
539 ;
540 ; Jupiter Ace:
541 ; Set mame to 48k ram
542 ;
543 ; Magnavox Odyssey 2:
544 ; Euro games should use the videopac bios instead of the odyssey2 one or you'll get some timing issues.
545 ; Use the systemName ini file in the folder with this module for this, example:
546 ; [Moto-Crash (France)]
547 ; Bios=videopac
548 ;
549 ; RCA Studio 2:
550 ; Most of the games require you to press a button to start the game, like 1 or 2 (refer to the game's manual).
551 ; The game screen will be black until you do.
552 ;
553 ; Texas Instruments TI 99/4A:
554 ; This system requires full keyboard emulation to work properly
555 ; Split cart dumps are not supported since MESS .145 so you'll have to convert them to RPK format or use an earlier version of MESS (and a different module)
556 ; You can check how to convert split cart dumps to RPK here:
557 ; http://www.ninerpedia.org/index.php/MESS_multicart_system
558 ; For floppy games make sure you have a RPK dump of an extended basic rom on your roms folder. It should be named "extended_basic.rpk"
559 ; This system requires you to use a MAME build with Direct Input enabled in order to auto start the games. Most games will require commands to be typed to start
560 ; and it's normally too complex to be able to do it through the -ab switch so SendCommand is used instead which means a Direct Input enabled MAME version is required.
561 ;
562 ; Bezels:
563 ; Module settings control whether RocketLauncher or MAME bezels are shown
564 ; In the bezel normal mode only RocketLauncher Bezels will be show and the MAME use_bezels option will be forced disbaled
565 ; In the bezel layout mode, RocketLauncher Bezels will be drawn only when you do not have a layout file on your MAME folders for the current game
566 ;
567 ; ServoStik:
568 ; The module will automatically control any connected ServoStiks found on the system.
569 ; It does this by reading the xml info from MAME. If that XML info has directional info at 4 or less, 4-way mode will be enabled. All others get 8-way mode.
570 ;
571 ; Per game controller types:
572 ; MAME allows you to change the controller type for each game by using slot devices. Slot devices are highly customizable and vary greatly from system to
573 ; system so to avoid adding a huge complexity to the module this must be done through the Parameters settings.
574 ; Slot devices are stored in the MAME ini file you are using, so the best way to find the command line you need to use is to start your game set the slot devices
575 ; through the MAME UI (Press tab while in MAME) exit and then open the MAME ini file and search for a section named SLOT DEVICES.
576 ; This is an example for Atari 2600 for a game using wheel controllers on both joy ports:
577 ; #
578 ; # SLOT DEVICES
579 ; #
580 ; joyport1 wheel
581 ; joyport2 wheel
582 ; The suggested method is to set the desired controllers you want to use by default in the Module Global Settings, in this case under the Atari 2600 tab you would
583 ; set Parameters=-joyport1 joy -joyport2 joy
584 ; And then for specific games do the same under Module Specific Settings for that system, if a game requires the wheel controller you'd set
585 ; Parameters=-joyport1 wheel -joyport2 wheel
586 ;
587 ; Another option is to set the default values in the MAME ini file and make sure you also set writeconfig to 0.
588 ; Swapping slot devices wipes out SYSTEM custom configs on the unplugged controllers, so to avoid any customised controls getting erased everytime you change slot devices,
589 ; ensure you set your controls in the main MAME config file (MAME.ini), not the system one (ex. Atari 2600.ini).
590 ;
591 ; Linking/NetPlay:
592 ; The module will automatically set correct network ports for linked games.
593 ; Up to 8 players on the same PC are supported. Multiple copies of MAME will be launched.
594 ; Placement of the screens are automatic but can be controlled in RocketLauncherUI MAME module settings. Windowed mode is required when more than one copy of mame is launched and is set automatically.
595 ; Each player will use a different cfg and nvram folder in your MAME folder. Player 1 will always use .\cfg and .\nvram.
596 ; Players 2 through 8 will use .\cfg2, .\cfg3, etc and .\nvram2, .\nvram3, etc
597 ; These folders and cfg/nvram files will be automatically created for you on launch so you do not need to create them manually.
598 ; Global inputs is automatically turned on for you but it is your job to setup individual controls for each instance. MAME only supports raw-input in this mode however.
599 ; Over a LAN/WAN connection only 2 players are supported due to the way the ports are designated, it's impossible to automate port allocation because there is no 1 server where all hosts connect to.
600 ; Default starting port for the Master is 15111 and consecutively goes up from there upto 15119 for 8 players. You can change the default starting port in the module settings if it conflicts with used ports on your network.
601 ; There are other network related settings in the module settings to assist with starting IPs and connectivity, so check them out as well.
602 ;
603 ; NVRAM Automation for linked games:
604 ; When launching linked games on the same pc NVRAM settings are automatically set for you so each player will be unique.
605 ; For instance, in Virtua Racing, Player 1 is red, player 2 is blue, player 3 is yellow, etc.
606 ; To do this, some other options are also set automatically for you as well, like region, difficulty, countr, course, etc
607 ; I set these to defaults, but prefer USA region. If you do not like these, you will have to disable NVRAM automation in the module settings in RocketLauncherUI.
608 ;
609 ; Additional Link info that may be of some importance:
610 ; The original Model-1 has a max Bandwidth of 6 MBit/s (TOTX173/TORX173).
611 ; One Board sends about 20 KByte/s.
612 ; So bandwidth CLIENTSIDE is like...
613 ; 2 Boards - 20 KByte/s inbound and 20 KByte/s outbound.
614 ; 3 Boards - 40 KByte/s inbound and 20 KByte/s outbound.
615 ; 4 Boards - 60 KByte/s inbound and 20 KByte/s outbound.
616 ; etc.
617 ; Some good info on Linking: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=297577&page=0
618 ; also http://forum.arcadecontrols.com/index.php/topic,130136.msg1331485.html
619 ;----------------------------------------------------------------------------
620 StartModule()
621 BezelGUI()
622
623 dialogOpen := i18n("dialog.open") ; Looking up local translation
624 primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
625 emuPrimaryWindow := new Window(new WindowTitle("","MAME")) ; instantiate primary emulator window object
626 emuOpenWindow := new Window(new WindowTitle(dialogOpen,"ConsoleWindowClass"))
627 emuConsoleWindow := new Window(new WindowTitle("","ConsoleWindowClass"))
628 emuDebugWindow := new Window(new WindowTitle("","MAMEDebugWindow"))
629 emuOutputWindow := new Window(new WindowTitle("","MAMEOutput"))
630
631 ; This object controls how the module reacts to different systems. MAME can play a lot of systems, but needs to know what system you want to run, so this module has to adapt.
632 mTypeVar := "
633 ( LTrim
634 Aamber Pegasus|pegasus
635 Acorn Electron|electron
636 Amstrad CPC|cpc664
637 Amstrad GX4000|gx4000
638 APF Imagination Machine|apfimag
639 Apple II|apple2ep
640 Apple IIGS|apple2gs
641 Applied Technology MicroBee|mbeeic
642 Atari 8-Bit|a800
643 Atari 2600|a2600
644 Atari 5200|a5200
645 Atari 7800|a7800
646 Atari Jaguar|jaguar
647 Atari Lynx|lynx
648 Bally Astrocade|astrocde
649 Bandai Super Vision 8000|sv8000
650 Bandai WonderSwan|wswan
651 Bandai WonderSwan Color|wscolor
652 Bit Corporation Gamate|gamate
653 Camputers Lynx|lynx128k
654 Casio PV-1000|pv1000
655 Casio PV-2000|pv2000
656 Coleco ADAM|adam
657 ColecoVision|coleco
658 Commodore 64|c64
659 Commodore MAX Machine|vic10
660 Creatronic Mega Duck|megaduck
661 EACA EG2000 Colour Genie|cgenie
662 Emerson Arcadia 2001|arcadia
663 Entex Adventure Vision|advision
664 Epoch Game Pocket Computer|gamepock
665 Epoch Super Cassette Vision|scv
666 Exidy Sorcerer|sorcerer
667 Fairchild Channel F|channelf
668 Fujitsu FM-7|fmnew7
669 Funtech Super Acan|supracan
670 GamePark 32|gp32
671 GCE Vectrex|vectrex
672 Hartung Game Master|gmaster
673 Interton VC 4000|vc4000
674 JungleTac Sport Vii|vii
675 Jupiter Ace|jupace
676 Magnavox Odyssey 2|odyssey2
677 Matra & Hachette Alice|alice32
678 Mattel Aquarius|aquarius
679 Mattel Intellivision|intv
680 MGT Sam Coupe|samcoupe
681 Milton Bradley MicroVision|microvsn
682 NEC PC-8801|pc8801
683 NEC PC Engine|pce
684 NEC PC Engine-CD|pce
685 NEC SuperGrafx|sgx
686 NEC TurboGrafx-16|tg16
687 NEC TurboGrafx-CD|tg16
688 Nintendo 64|n64
689 Nintendo 64DD|n64dd
690 Nintendo Entertainment System|nes
691 Nintendo Famicom|famicom
692 Nintendo Famicom Disk System|fds
693 Nintendo Game Boy|gameboy
694 Nintendo Game Boy Advance|gba
695 Nintendo Game Boy Color|gbcolor
696 Nintendo Pokemon Mini|pokemini
697 Nintendo Satellaview|snes
698 Nintendo Super Famicom|snes
699 Nintendo Super Game Boy|supergb
700 Nintendo Virtual Boy|vboy
701 Othello Multivision|omv1000
702 Philips CD-i|cdimono1
703 Philips Videopac Plus G7400|g7400
704 Philips VG 5000|vg5k
705 RCA Studio II|studio2
706 Sega 32X|32x
707 Sega CD|segacd
708 Sega Game Gear|gamegear
709 Sega Genesis|genesis
710 Sega Master System|sms
711 Sega Mega Drive|megadriv
712 Sega Pico|pico
713 Sega Saturn|saturn
714 Sega SC-3000|sc3000
715 Sega SG-1000|sg1000
716 Sega VMU|svmu
717 Sharp X1|x1turbo40
718 Sinclair ZX81|zx81
719 SNK Neo Geo AES|aes
720 SNK Neo Geo CD|neocdz
721 SNK Neo Geo Pocket|ngp
722 SNK Neo Geo Pocket Color|ngpc
723 Sony PlayStation|psx
724 Sony PocketStation|pockstat
725 Sord M5|m5
726 Soundic Victory MPT-02|mpt02
727 Super Nintendo Entertainment System|snes
728 Tandy TRS-80 Color Computer|coco3
729 Texas Instruments TI 99-4A|ti99_4a
730 Tiger Game.com|gamecom
731 Tomy Tutor|tutor
732 VTech CreatiVision|crvision
733 Watara Supervision|svision
734 )"
735 mType := Object()
736 Loop, Parse, mTypeVar, `n, `r
737 {
738 obj := {}
739 Loop, Parse, A_LoopField, |
740 If (A_Index = 1)
741 obj.System := A_LoopField
742 Else ; 2
743 obj.mameID := A_LoopField
744 mType.Insert(obj["System"], obj)
745 }
746 RLLog.Debug("Module - Finished building the " . MEmu . " object")
747 ; For easier use throughout the module
748 mameSystem := mType[systemName].System
749 mameID := mType[systemName].mameID
750
751 If !mameSystem {
752 RLLog.Warning("Module - """ . systemName . """ is not a known console or computer system. Defaulting to MAME's Arcade mode for the remainder of this " . MEmu . " module.")
753 mameSystem := systemName
754 mameID := "MAME"
755 }
756
757 Fullscreen := moduleIni.Read("Settings", "Fullscreen","true","",1) ; Set fullscreen mode
758 legacyMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "LegacyMode","false","",1)
759 mameBiosPath := moduleIni.Read("Settings", "MAME_BIOS_Path", emuPath . "\roms","",1)
760 Videomode := moduleIni.Read("Settings", "Videomode","d3d","",1) ; Choices are gdi,ddraw,d3d. If left blank, MAME uses d3d by default
761 pauseMethod := moduleIni.Read("Settings", "PauseMethod",1,"",1) ; set the pause method that works better on your machine (preferred methods 1 and 2) 1 = Win7 and Win8 OK - Problems with Win XP, 2 = preferred method for WinXP - Problems in Win7, 3 and 4 = same as 1 and 2, 5 = only use If you have a direct input version of mame, 6 = suspend mame process method, it could crash mame in some computers
762 bilinearFilter := moduleIni.Read(mameSystem . "|Settings", "BilinearFilter","false","",1)
763 hlsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "HLSL","false","",1)
764 glsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "GLSL","false","",1)
765 bezelMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "BezelMode","layout","",1) ; "layout" or "normal"
766 verticalRotationMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "VerticalRotationMode","none","",1)
767 cheatMode := moduleIni.Read("Settings", "CheatMode","false","",1)
768 cheatModeKey := moduleIni.Read("Settings", "CheatModeKey","","",1) ; user defined key to be held down before launching a mame rom.
769 UseSoftwareList := moduleIni.Read(romName . "|" . mameSystem, "UseSoftwareList","false","",1)
770 sysStaticParams := moduleIni.Read(mameSystem, "StaticParameters", "","",1)
771 sysParams := moduleIni.Read(mameSystem, "Parameters", "","",1)
772 romParams := moduleIni.Read(romName, "Parameters", sysParams,"",1)
773 mameRomName := moduleIni.Read(romName, "MameRomName", "","",1)
774 autosave := moduleIni.Read(romName . "|" . mameSystem, "Autosave", "false","",1)
775 volume := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "Volume","","",1)
776 Artwork_Crop := moduleIni.Read(romName . "|" . mameSystem, "Artwork_Crop", "true","",1)
777 Use_Bezels := moduleIni.Read(romName . "|" . mameSystem, "Use_Bezels", "false","",1)
778 Use_Overlays := moduleIni.Read(romName . "|" . mameSystem, "Use_Overlays", "true","",1)
779 Use_Backdrops := moduleIni.Read(romName . "|" . mameSystem, "Use_Backdrops", "true","",1)
780 Use_Cpanels := moduleIni.Read(romName . "|" . mameSystem, "Use_Cpanels", "false","",1)
781 Use_Marquees := moduleIni.Read(romName . "|" . mameSystem, "Use_Marquees", "false","",1)
782 inipath := moduleIni.Read(mameSystem, "IniPath", "","",1)
783 hashpath := moduleIni.Read(mameSystem, "HashPath", "","",1)
784 UseControllerRemap := moduleIni.Read(mameSystem . "|Settings", "UseControllerRemap", "true","",1)
785 ControllerRemapPath := moduleIni.Read(mameSystem . "|Settings", "ControllerRemapPath", emuPath . "\ControllerRemap\ControllerRemap.exe","",1)
786 CtrlRemapFile := new File(ControllerRemapPath)
787 ControllerRemapConfigPath := moduleIni.Read( mameSystem . "|Settings", "ControllerRemapConfigPath", CtrlRemapFile.FilePath . "\ctrlr\","",1)
788 MAMECtrlrPath := moduleIni.Read(mameSystem . "|Settings", "MAMECtrlrPath", emuPath . "\ctrlr","",1)
789
790 mameBiosPath := GetFullName(mameBiosPath)
791
792 ; Loop, 8
793 ; car%A_Index%Color := moduleIni.Read(romName, "Car_" . A_Index . "_Color","","",1)
794
795 enableLinkPlay := moduleIni.Read(romName . "|Link/Network", "Enable_Link_Play", "false","",1)
796 networkSession := ""
797 If (enableLinkPlay != "false") {
798 RLLog.Info("Module - Link/Network Multi-Player is an available option for " . romName)
799 getWANIP := moduleIni.Read("Link/Network", "Get_WAN_IP","false","",1)
800 myIP := If getWANIP = "true" ? GetPublicIP() : "127.0.0.1" ; use local ip by default if user does not want to get the WAN IP as MAME needs this for linked games
801 networkPlayers := enableLinkPlay ; Max amount of networkable players
802 localLink := 1 ; Tell Multiplayer menu to enable menu option for local linking
803
804 enableNVRAMAutomation := moduleIni.Read(romName . "|Link/Network", "Enable_NVRAM_Automation","true","",1)
805 maxPlayersPerMonitor := moduleIni.Read(romName . "|Link/Network", "Max_Players_Per_monitor","1|1|1|1|1|1|1|1","",1)
806 splitScreen2PlayersMode := moduleIni.Read(romName . "|Link/Network", "SplitScreen_2_Players","Horizontal","",1) ;horizontal or vertical
807 splitScreen3PlayersMode := moduleIni.Read(romName . "|Link/Network", "SplitScreen_3_Players","P1top","",1) ; For Player1 screen to be on left: P1left. For Player1 screen to be on top: P1top. For Player1 screen to be on bottom: P1bottom. For Player1 screen to be on right: P1right.
808 localPort := moduleIni.Read("Link/Network", "Local_Port","15111","",1)
809
810 defaultServerIP := moduleIni.Read("Link/Network", "Default_Server_IP", myIP,"",1)
811 defaultServerPort := moduleIni.Read("Link/Network", "Default_Server_Port","15111","",1)
812 lastIP := moduleIni.Read("Link/Network", "Last_IP", defaultServerIP,"",1) ; also known as the Remote IP in mame. Does not need to be on the ISD
813 lastPort := moduleIni.Read("Link/Network", "Last_Port", defaultServerPort,"",1) ; also known as the Remote Port in mame. Does not need to be on the ISD
814
815 MultiplayerMenu(lastIP, lastPort, networkType, networkPlayers,,,,,,localLink,"ipAndPort")
816
817 ;MultiPlayer Menu Result
818 ; If !(networkType)
819 ; MsgBox, % "Single Player Game"
820 ; Else If (networkType="localLink")
821 ; MsgBox, % "Local Link selected with the number of players equal to: " . networkPlayers
822 ; Else If (networkType="server")
823 ; MsgBox, % "WAN IP Address=" . networkIP . " | LAN IP Address=" . localIP[1,2] . " | Port=" . networkPort . " | networkPlayers=" . networkPlayers . " | networkRequiresSetup=" . networkRequiresSetup
824 ; Else If (networkType="client")
825 ; MsgBox, % "NetworkIP=" . networkIP . " | Port Number=" . networkPort . " | networkRequiresSetup=" . networkRequiresSetup
826
827 If networkSession {
828 RLLog.Info("Module - Using a Network for " . romName)
829 multiPlayerObj := Object() ; initialize object to store the multiplayer options
830 If (networkType="localLink") {
831 RLLog.Info("Module - Setting remote host to 127.0.0.1 to support local link mode as it is running on this PC.")
832 linkEnabledGame := 1
833 If networkPlayers > 1
834 { RLLog.Info("Module - Local link mode was selected and " . networkPlayers . " sessions will be launched.")
835 fullscreen := "false" ; must turn off fullscreen if running multiple MAMEs on the same machine
836 Loop % networkPlayers {
837 multiPlayerObj[A_Index,"Player"] := A_Index
838 multiPlayerObj[A_Index,"CfgDir"] := " -cfg_directory cfg" . (If A_Index = 1 ? "" : A_Index)
839 multiPlayerObj[A_Index,"NvramDir"] := " -nvram_directory nvram" . (If A_Index = 1 ? "" : A_Index)
840 If (A_Index = 1) { ; Player 1
841 initialLocalPort := localPort ; must be stored for last player
842 multiPlayerObj[A_Index,"LocalHost"] := " -comm_localhost 0.0.0.0"
843 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
844 localPort++
845 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . localPort
846 } Else { ; Players 2+
847 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
848 localPort++
849 multiPlayerObj[A_Index,"RemoteHost"] := " -comm_remotehost 127.0.0.1"
850 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . (If A_Index = networkPlayers ? initialLocalPort : localPort) ; must set remote port to first port on last player
851 }
852
853 ; msgbox % "Player: " . multiPlayerObj[A_Index]["Player"] . "`nLocalHost: " . multiPlayerObj[A_Index]["LocalHost"] . "`nLocalPort: " . multiPlayerObj[A_Index]["LocalPort"] . "`nRemoteHost: " . multiPlayerObj[A_Index]["RemoteHost"] . "`nRemotePort: " . multiPlayerObj[A_Index]["RemotePort"] . "`nCfgDir: " . multiPlayerObj[A_Index]["CfgDir"] . "`nNvramDir: " . multiPlayerObj[A_Index]["NvramDir"]
854 }
855 } Else
856 RLLog.Info("Module - Local link mode was selected but user only chose 1 player. Launch will be a normal session.")
857 } Else If (networkType = "client") {
858 RLLog.Info("Module - Remote host is running on another PC, module will use remote link mode.")
859 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
860 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
861 linkType := "Slave"
862 networkPlayers := 1
863 multiPlayerObj[1,"Player"] := 1
864 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
865 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
866 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
867 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . localPort
868 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
869 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
870 } Else { ; server
871 RLLog.Info("Module - This PC is acting as the host, telling mame to listen for incoming connections on port: " . localPort)
872 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
873 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
874 linkType := "Master"
875 networkPlayers := 1
876 multiPlayerObj[1,"Player"] := 1
877 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
878 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
879 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
880 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . networkPort
881 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
882 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
883 }
884 RLLog.Info("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """")
885 } Else {
886 RLLog.Info("Module - User chose Single Player mode for this session")
887 }
888 }
889
890 FadeInStart()
891
892 If inipath
893 inipath := AbsoluteFromRelative(EmuPath, inipath)
894 If hashpath
895 hashpath := AbsoluteFromRelative(EmuPath, hashpath)
896
897 artworkCrop := If (Artwork_Crop = "true") ? " -artwork_crop" : " -noartwork_crop"
898 useBezels := If (Use_Bezels = "true") ? " -use_bezels" : " -nouse_bezels"
899 useOverlays := If (Use_Overlays = "true") ? " -use_overlays" : " -nouse_overlays"
900 useBackdrops := If (Use_Backdrops = "true") ? " -use_backdrops" : " -nouse_backdrops"
901 useCpanels := If (Use_Cpanels = "true") ? " -use_cpanels" : " -nouse_cpanels"
902 useMarquees := If (Use_Marquees = "true") ? " -use_marquees" : " -nouse_marquees"
903 autosave := If autosave = "true" ? " -autosave" : ""
904 volume := If volume != "" ? " -volume " . volume : ""
905 inipath := If inipath != "" ? " -inipath """ . inipath . """" : ""
906 hashpath := If hashpath != "" ? " -hashpath """ . hashpath . """" : ""
907
908 If (verticalRotationMode = "none")
909 verticalRotationMode := ""
910
911 ; Process mame's ListXML for certain features
912 If (bezelEnabled = "true" || servoStikEnabled = "auto" || verticalRotationMode || UseControllerRemap = "true") {
913 ListXMLObject := Object()
914 ListXMLObject := ListXMLInfo(If mameRomName ? mameRomName : romName)
915
916 Angle := ListXMLObject["Angle"].Value
917 If (bezelEnabled = "true") {
918 If (networkPlayers > 1) {
919 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
920 BezelStart(networkPlayers)
921 } Else {
922 If (bezelMode = "layout"){
923 BezelStart("layout",ListXMLObject["Parent"].Value,Angle,romName)
924 } Else { ;bezel mode = normal
925 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
926 BezelStart(,,Angle)
927 }
928 }
929 }
930 If (servoStikEnabled = "auto") {
931 ServoStik(If ListXMLObject["Ways"].Value <= 4 ? 4 : 8) ; If "ways" in the xml is set to 4 or less, the servo will go into 4-way mode, else 8-way mode will be enabled
932 }
933 If (verticalRotationMode && Angle) {
934 RLLog.Info("Setting rotation mode to " . verticalRotationMode . " - Game's angle is " . Angle)
935 If (verticalRotationMode = "original")
936 verticalRotationMode := " -norotate"
937 Else If (verticalRotationMode = "right")
938 verticalRotationMode := " -ror"
939 Else If (verticalRotationMode = "left")
940 verticalRotationMode := " -rol"
941 Else
942 verticalRotationMode := ""
943 }
944 Else
945 verticalRotationMode := ""
946
947 ;Controller Remap
948 If (UseControllerRemap = "true") {
949 RLLog.Info("Controller Remap: Start")
950 romProfileName := (mameRomName ? mameRomName : romName)
951 romParentName := ListXMLObject["Parent"].Value
952
953 If ControllerRemapPath
954 ControllerRemapPath := AbsoluteFromRelative("", ControllerRemapPath)
955 If ControllerRemapConfigPath
956 ControllerRemapConfigPath := AbsoluteFromRelative("", ControllerRemapConfigPath)
957 If MAMECtrlrPath
958 MAMECtrlrPath := AbsoluteFromRelative(emuPath, MAMECtrlrPath)
959
960 ctrlrPath := ""
961 RLLog.Info("Controller Remap: ControllerRemapConfigPath: " . ControllerRemapConfigPath)
962
963 ;~ ;1- Check for Rom. 2- Check for Rom Parent. 3- Check for System default
964 If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")) {
965 RLLog.Info("Controller Remap: Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
966 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
967 }
968 else if (romParentName and FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")) {
969 RLLog.Info("Controller Remap: Parent Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
970 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
971 }
972 else If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")) {
973 RLLog.Info("Controller Remap: System Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
974 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
975 }
976 else If (FileExist(ControllerRemapConfigPath . "\_Default.cfg")) {
977 RLLog.Info("Controller Remap: Global Config File Found: " . ControllerRemapConfigPath . "\_Default.cfg")
978 ctrlrPath := new File(ControllerRemapConfigPath . "\_Default.cfg")
979 }
980
981 ; Is there a controller file?
982 if (ctrlrPath) {
983 ctrlrFile := " -ctrlr RocketLauncher"
984
985 ;Replace <system name="default"> with the Right mameID in the RocketLauncher.cfg file
986 if(mameID != "MAME") {
987 ctrlrPath.Read()
988 rocketLauncherCfgFile := new File(MAMECtrlrPath . "\RocketLauncher.cfg")
989 rocketLauncherCfgFile.Delete()
990 rocketLauncherCfgFile.Append(StringUtils.Replace(ctrlrPath.Text, "<system name=""default"">", "<system name=""" . mameID . """>"))
991 }
992 else {
993 ctrlrPath.Copy(MAMECtrlrPath . "\RocketLauncher.cfg",1)
994 }
995
996 RLLog.Info("Controller Remap: Running """ . ControllerRemapPath . """ /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""")
997 ControllerRemapProcess := new Process(ControllerRemapPath)
998 ControllerRemapProcess.Run(" /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""","Hide")
999 }
1000 else {
1001 RLLog.Info("Controller Remap: No Controller config file found.")
1002 }
1003 RLLog.Info("Controller Remap: End")
1004 }
1005 }
1006
1007 winstate := If (Fullscreen = "true") ? "Hide UseErrorLevel" : "UseErrorLevel"
1008 fullscreenParam := If (Fullscreen = "true") ? " -nowindow" : " -window"
1009
1010 hideEmuObj := Object(emuOpenWindow,0,emuDebugWindow,0,emuOutputWindow,0,emuPrimaryWindow,1)
1011 7z(romPath, romName, romExtension, sevenZExtractPath)
1012
1013 ; Get MAME version from executable, this is needed since some CLI switches are not available in older MAME versions
1014 exeAtrib := FileGetVersionInfo_AW(emuPath . "\" . executable, "FileVersion|ProductVersion", "|")
1015 Loop, Parse, exeAtrib, |%A_Tab%, %A_Space%
1016 A_Index & 1 ? ( _ := A_LoopField ) : ( %_% := A_LoopField )
1017 If ProductVersion
1018 MAMEVersion := StringUtils.Right(ProductVersion, StringUtils.StringLength(ProductVersion) - 2)
1019 RLLog.Info("Module - Detected MAME Product Version from '" . EmuPath . "\" . executable . "' is " . MAMEVersion)
1020
1021 If (videomode = "opengl") {
1022 hlsl := " -nohlsl_enable"
1023 If (MAMEVersion > 159)
1024 glsl := If glsl = "true" ? " -gl_glsl" : (If glsl = "ini" ? "" : " -nogl_glsl")
1025 Else
1026 glsl := ""
1027 } Else {
1028 hlsl := If hlsl = "true" ? " -hlsl_enable" : (If hlsl = "ini" ? "" : " -nohlsl_enable")
1029 If (MAMEVersion > 159)
1030 glsl := If videomode = "ini" ? "" : " -nogl_glsl"
1031 Else
1032 glsl := ""
1033
1034 If (videomode = "ini")
1035 videomode := ""
1036 }
1037 videomode := If (Videomode != "" ) ? " -video " . videomode : ""
1038
1039 param1 := " -cart """ . romPath . "\" . romName . romExtension . """" ; default param1 used for launching most systems.
1040 If (romExtension = ".txt") ; This can be applied to all systems
1041 param1 := ""
1042
1043 If (mameID = "apfimag") ; APF Imagination Machine
1044 If (romExtension != ".tap")
1045 mameID := "apfm1000" ; cart games for APF Imagination Machine require a different bios to be loaded
1046
1047 If (UseSoftwareList != "true")
1048 { ; Now that we know the system we are loading, determine if we use an ini assocated with that system for custom game configs a user might need. Then load the configs associated to that game.
1049 If StringUtils.Contains(mameID,"ti99_4a|aes|apple2gs|electron|mbeeic|odyssey2|astrocde|samcoupe|vic10|cpc664") ; these systems will use an ini to store game specific settings
1050 {
1051 If !SystemModuleIni.Exist()
1052 SystemModuleIni.Append() ; create a blank file if it does not exist
1053
1054 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1055 {
1056 ExpansionCartLocation := moduleIni.Read("Settings", "ExpansionCartLocation", romPathOrig . "\System","",1)
1057 ExpansionCartLocation := GetFullName(ExpansionCartLocation)
1058 CommandWaitOffset := moduleIni.Read("Settings", "CommandWaitOffset", 0,"",1)
1059
1060 ExpansionCart := moduleIni.Read(romName, "Expansion_Cart","extended_basic.rpk","",1) ; user can specify a rom specific cart instead of the default basic one
1061 Command := moduleIni.Read(romName, "Command", "","",1)
1062
1063 ; Now set the parameters to send to MAME
1064 If (romExtension = ".dsk") ; Expansion Disk
1065 {
1066 ; If using the mainCart , send expansionLocation to MAME. This will require DirectInput to be enabled on the MAME build! Else we are loading a Disk game
1067 param1 := " -nat -gromport single -cart1"
1068 param2 := " """ . ExpansionCartLocation . "\" . ExpansionCart . """"
1069 param3 := " -peb:slot2 32kmem -peb:slot3 speech -peb:slot6 tirs232 -peb:slot8 hfdc"
1070 param4 := " -flop1"
1071 param5 := " """ . romPath . "\" . romName . romExtension . """"
1072 If StringUtils.Contains(romName, "\(Disk")
1073 {
1074 TimerUtils.Sleep(50)
1075 If (romTable.MaxIndex() = 2)
1076 {
1077 param4 := " -flop1 " . " """ . romTable[1,1] . """"
1078 param5 := " -flop2 " . " """ . romTable[2,1] . """"
1079 }
1080 }
1081 } Else If (romExtension = ".rpk") ; Cart Game (RPK Format)
1082 param1 := " -nat -gromport single -cart1", param2:=" """ . romPath . "\" . romName . romExtension . """", param3:=" -peb:slot3 speech" ;-cart will also work here
1083 param6 := " -ui_active" ;Enable partial keyboard mode at startup
1084 } Else If (mameID = "aes") ; SNK Neo Geo AES
1085 { biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1086 param1 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1087 param2 := " -cart " . romName
1088 }Else If (mameID = "apple2gs") ; Apple IIGS
1089 { externalOS := moduleIni.Read(romName, "External_OS","false","",1)
1090 2gsSystemFile := "System6.2mg" ;For games without OS included, always force this name and error out if not found
1091 multipartTable := CreateRomTable(multipartTable)
1092
1093 If (externalOS = "true")
1094 { CheckFile(romPath . "\" . 2gsSystemFile)
1095 param1 := " -flop3", param2:=" """ . romPath . "\" . 2gsSystemFile . """", param3:=" -flop4", param4:=" """ . romPath . "\" . romName . romExtension . """"
1096 } Else {
1097 param1 := " -flop3", param2:=" """ . romPath . "\" . romName . romExtension . """"
1098 If (multipartTable.MaxIndex() > 1)
1099 param3 := " -flop4", param4 := " """ . multipartTable[2,1] . """"
1100 }
1101 param5 := " -ui_active" ;Enable partial keyboard mode at startup
1102 }Else If (mameID = "electron") ; Acorn Electron
1103 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1104 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1105 If (romExtension = ".bin")
1106 mediaDeviceType := "cart"
1107 Else ; any other format
1108 mediaDeviceType := "cass"
1109 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1110 }Else If (mameID = "sc3000") ; Sega SC-3000
1111 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1112 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1113 If StringUtils.Contains(romExtension,"\.bin|\.sg\|.sc")
1114 mediaDeviceType := "cart"
1115 Else ; any other format
1116 mediaDeviceType := "cass"
1117 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1118 }Else If (mameID = "c64") ; Commodore 64
1119 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1120 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1121 If StringUtils.Contains(romExtension,"\.d64|\.g64|\.g41|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1122 mediaDeviceType := "flop1"
1123 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1124 mediaDeviceType := "cass1"
1125 Else If StringUtils.Contains(romExtension,"\.80|\.a0|\.e0|\.crt")
1126 mediaDeviceType := "cart1"
1127 Else If StringUtils.Contains(romExtension,"\.p00|\.prg|\.t64")
1128 mediaDeviceType := "quik1"
1129 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1130 }Else If mameID = mbeeic ; Applied Technology MicroBee
1131 { microbeeModel := moduleIni.Read(romName, "MicroBee_Model","mbeeic","",1)
1132 If !StringUtils.Contains(microbeeModel,"mbee|mbeeic|mbeepc|mbeepc85|mbee56")
1133 ScriptError("This is not a known MicroBee model value: " . microbeeModel)
1134 Else If (microbeeModel != "mbeeic")
1135 mameID := microbeeModel
1136 If StringUtils.Contains(romExtension,"\.mwb|\.com|\.bee")
1137 mediaDeviceType := "quik1"
1138 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1139 mediaDeviceType := "cass"
1140 Else If StringUtils.Contains(romExtension,"\.rom")
1141 mediaDeviceType := "cart"
1142 Else If StringUtils.Contains(romExtension,"\.dsk")
1143 mediaDeviceType := "flop1"
1144 Else ; .bin format
1145 mediaDeviceType := "quik2"
1146 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """"
1147 }Else If (mameID = "odyssey2") ; Magnavox Odyssey 2
1148 { param2 := " -ui_active" ;Enable partial keyboard mode at startup
1149 If romName not contains (USA
1150 mameID := "videopac"
1151 }Else If (mameID = "astrocde") ; Bally Astrocade
1152 {
1153 BlueRAMBasicRom := moduleIni.Read("Settings", "BlueRAMBasicRom","Blue RAM Basic v1.1 (USA).bin","",1) ; Blue RAM Basic rom
1154 RequiresReset := moduleIni.Read(romname, "RequiresReset","false","",1) ; Check if game requires a reset
1155
1156 BlueRAMBasicRomPath := new File(romPath . "\" . BlueRAMBasicRom)
1157 If (romExtension = ".script") {
1158 ; Will require blue ram basic
1159 If !BlueRAMBasicRomPath.Exist() {
1160 ; Blue RAM Basic games might be in their own sub-folders since they have several files, so let's try to find the Blue RAM cart in the parent folder as well
1161 StringUtils.SplitPath(romPath,"",romBasePath) ; grab path one level up
1162 BlueRAMBasicRomPath.__Delete()
1163 BlueRAMBasicRomPath := new File(romBasePath . "\" . BlueRAMBasicRom)
1164 BlueRAMBasicRomPath.CheckFile("Couldn't find " . BlueRAMBasicRom . " on any of these paths:" . romBasePath . "|" . romPath)
1165 }
1166
1167 ScriptFile := new File(romPath . "\" . romName . romExtension)
1168 param1 := " -cart """ . BlueRAMBasicRomPath.FileFullPath . """"
1169
1170 ; Replace rompath variable in script
1171 ScriptFile.Read()
1172 ScriptFile.Text := StringUtils.Replace(ScriptFile.Text, "{romPath}", romPath, "all")
1173
1174 ; Create cmd file to send to MESS
1175 RomCMDFile := new File(romPath . "\" . romName . ".cmd")
1176 RomCMDFile.Delete()
1177 RomCMDFile.Append(ScriptFile.Text)
1178 param2 := " -exp blue_ram_16k -debug -debugscript """ . RomCMDFile.FileFullPath . """"
1179
1180 closeDebugWindow := "true"
1181 }
1182 }Else If (mameID = "samcoupe") ; MGT Sam Coupe
1183 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1184 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1185
1186 If StringUtils.Contains(romExtension,"\.mgt|\.dsk|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1187 mediaDeviceType := "flop1"
1188 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""\nBOOT\n""" . AutoBootDelay . ""
1189 }Else If (mameID = "vic10") ; Commodore MAX Machine
1190 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1191 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1192
1193 If StringUtils.Contains(romExtension,"\.e0|\.80")
1194 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1195 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1196 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1197 Else If StringUtils.Contains(romExtension,"\.t64|\.prg|\.p00")
1198 {
1199 mediaDeviceType := "quik"
1200 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""RUN""" . AutoBootDelay . ""
1201 }
1202 }Else If (mameID = "cpc664") ; Amstrad CPC
1203 { LaunchProgram := moduleIni.Read(romName, "LaunchProgram","disk","",1) ; Read command from config.
1204 LaunchProgram := " -autoboot_command " . """RUN \""" . LaunchProgram . "\n"""
1205 AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1206 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1207
1208 If StringUtils.Contains(romExtension,"\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1209 mediaDeviceType := "flop1"
1210 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """" . LaunchProgram . AutoBootDelay
1211 }
1212
1213 ;Use a different bios if needed (This must be done after the above if conditions since the mameID will change)
1214 iniBios := moduleIni.Read(romName, "Bios",mameID,"",1) ; for all games, we use the default bios. Some games might require different bios like Odyssey2's Jopac games use the videopac bios instead, which should be defined in the ini
1215 If (iniBios != "")
1216 mameID := iniBios ; need to change the bios name for some games
1217 }
1218
1219 ; These systems don't use an ini, but do require parameters to be changed from the default method of launching MAME
1220 If (mameID = "neocdz" || mameID = "cdimono1" || mameID = "segacd" || mameID = "saturn" || mameID = "psx" || (mameID = "tg16" && mameSystem = "NEC TurboGrafx-CD") || (mameID = "pce" && mameSystem = "NEC PC Engine-CD")) ; SNK Neo Geo CD, Philips CD-i, Sega CD, Sega Saturn, Sony PlayStation, NEC PC Engine-CD or NEC TurboGrafx-CD
1221 { If !StringUtils.Contains(romExtension,"\.chd|\.cue")
1222 ScriptError("MAME only supports " . mameSystem . " games in chd and cue format. It does not support:`n" . romExtension)
1223 If (mameSystem = "NEC TurboGrafx-CD") { ; NEC TurboGrafx-CD needs an additional bios mounted as a cart to run
1224 ; tgcdBios := CheckFile(emuPath . "\roms\CD-ROM System V2.01 (U).pce") ; older bios that doesn't seem to work with many games
1225 tgcdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.01 (U).pce")
1226 param2 := " -cart " . """" . tgcdBios . """"
1227 } Else If (mameSystem = "NEC PC Engine-CD") { ; NEC PC Engine-CD needs an additional bios mounted as a cart to run
1228 pcecdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.0 (J).pce")
1229 param2 := " -cart " . """" . pcecdBios . """"
1230 } Else If (mameID = "psx") { ; Sony PlayStation
1231 mameID := "psu" ; changing mameID sent to MAME to use the USA bios
1232 ; SelectMemCard() ; future function to swap around memcards
1233 ; Usage: mc1 "J:\MAME\software\psu\card1.mc"
1234 } If (mameSystem = "Sega CD") { ;
1235 If StringUtils.InStr(romName,"(Jap") ; Mega CD Japanese v2
1236 mameID := "megacd2j"
1237 Else If StringUtils.InStr(romName,"(Euro") ; Mega CD European (PAL)
1238 mameID := "megacd"
1239 }
1240 param1 := " -cdrm """ . romPath . "\" . romName . romExtension . """"
1241 }Else If (mameID = "gamecom") ; Tiger Game.com
1242 { If (romExtension != ".txt")
1243 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1244 }Else If (mameID = "genesis") ; Sega Genesis
1245 { If (StringUtils.InStr(romName, "(Europe") || StringUtils.InStr(romName, "(PAL")) ; if rom is from europe, tell MAME to boot a Mega Drive instead
1246 mameID := "megadriv"
1247 }Else If (mameID = "megadriv") ; Sega Mega Drive
1248 { If (StringUtils.InStr(romName, "(USA") || StringUtils.InStr(romName, "(NTSC")) ; if rom is from America, tell MAME to boot a Genesis instead
1249 mameID := "genesis"
1250 }Else If (mameID = "vii") ; JungleTac Sport Vii
1251 { If (romName = "Built-In Games (China)") ; Has some built-in games, gotta launch just BIOS for it.
1252 param1 := ""
1253 }Else If (mameID = "alice32") ; Matra & Hachette Alice
1254 { If (romExtension != ".txt")
1255 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1256 }Else If (mameID = "cgenie") ; EACA EG2000 Colour Genie
1257 { If (romExtension != ".txt")
1258 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1259 }Else If (mameID = "pockstat") ; Sony PocketStation
1260 { If (romExtension != ".gme")
1261 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1262 }Else If (mameID = "coco3") ; Tandy TRS-80 Color Computer
1263 { If (romExtension != ".txt")
1264 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1265 }Else If (mameID = "zx81") ; Sinclair ZX81
1266 { If (romExtension != ".txt")
1267 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1268 }Else If (mameID = "lynx128k") ; Camputers Lynx
1269 { If (romExtension != ".txt")
1270 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1271 }Else If (mameID = "vg5k") ; Philips VG 5000
1272 { If (romExtension != ".txt")
1273 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1274 }Else If (mameID = "sorcerer") ; Exidy Sorcerer
1275 { If (romExtension = ".snp") ; Snapshot file
1276 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1277 Else If (romExtension = ".bin")
1278 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1279 }Else If (messID = "jupace") ; jupiter ace
1280 { If (romExtension = ".ace")
1281 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1282 }Else If (mameID = "a800" || mameID = "fds") ; Atari 8-Bit, Nintendo Famicom Disk System
1283 { If (romExtension != ".txt")
1284 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1285 }Else If (mameID = "vectrex") ; GCE Vectrex
1286 { If (romName = "Mine Storm (World)") ; MAME dumps an error if you try to launch Mine Storm using a rom instead of just booting vectrex w/o a game in it (Mine Storm is built into vectrex)
1287 param1 := ""
1288 }Else If (mameID = "apfm1000") ; APF Imagination Machine/APF M1000
1289 { If (romName = "Rocket Patrol (USA)") ; Rocket Patrol is built into the APF M1000 ROM.
1290 param1 := ""
1291 }Else If (mameID = "adam") ; Coleco ADAM
1292 param1 := (If romExtension = ".ddp" ? " -cass1" : (If romExtension = ".dsk" ? " -flop1" : " -cart1")) . " """ . romPath . "\" . romName . romExtension . """" ; Decide if tape, disk, or cart game
1293 Else If (mameID = "pegasus") ; Aamber Pegasus
1294 { If (romExtension != ".txt")
1295 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1296 }Else If (mameID = "gp32") ; GamePark 32
1297 { If (romExtension != ".txt")
1298 param1 := " -memc """ . romPath . "\" . romName . romExtension . """"
1299 }Else If (mameID = "svmu") ; Sega VMU
1300 {
1301 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1302 }Else If (mameID = "x1turbo40") ; Sharp X1
1303 { If StringUtils.Contains(romExtension,"\.bin|\.rom")
1304 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1305 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1306 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1307 Else
1308 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1309 }Else If (mameID = "pc8801") ; NEC PC-8801
1310 { If (romExtension = ".d88")
1311 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1312 }Else If (mameID = "fmnew7") ; Fujitsu FM-7
1313 { If StringUtils.Contains(romExtension,"\.fdi|\.td0|\.imd|\.cqm|\.dsk|\.d77|\.d88|\.1dd")
1314 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1315 Else If StringUtils.Contains(romExtension,"\.wav|\.t77")
1316 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1317 }Else If (mameID = "apple2ep") ; Apple II
1318 { If StringUtils.Contains(romExtension,"\.dsk|\.do|\.po|\.rti|\.edd|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.i pf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1319 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1320 Else If StringUtils.Contains(romExtension,"\.wav")
1321 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1322 }Else If (mameID = "n64dd") ; Nintendo 64DD
1323 {
1324 N64RomFile := new FIle(romPath . "\" . romName . ".n64")
1325 If N64RomFile.Exist()
1326 param1 := " -cart """ . N64RomFile.FileFullPath . """ -quik """ . romPath . "\" . romName . romExtension . """"
1327 Else
1328 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1329 }Else If StringUtils.Contains(mameID,"studio2|mpt02") ; RCA Studio 2
1330 {
1331 If (romExtension != ".txt")
1332 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1333 Else {
1334 If StringUtils.Contains(romName,"Doodle")
1335 button2 := "A 1" ; Press 1 on P1 controller
1336 If StringUtils.Contains(romName,"Patterns")
1337 button2 := "A 2" ; Press 2 on P1 controller
1338 If StringUtils.Contains(romName,"Bowling")
1339 button2 := "A 3" ; Press 3 on P1 controller
1340 If StringUtils.Contains(romName,"Freeway")
1341 button2 := "A 4" ; Press 4 on P1 controller
1342 If StringUtils.Contains(romName,"Addition")
1343 button2 := "A 5" ; Press 5 on P1 controller
1344 }
1345
1346 ; Generate a lua script to press the Clear button so games will start
1347 ScriptFileName := GeneratePressButtonScript("Clear",button2)
1348 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1349 }
1350 } Else { ; Use Software List
1351 hashname := mameID
1352 param1 := " """ . romName . """" ; param1 used for launching from software lists
1353
1354 If (mameID = "aes") ; SNK Neo Geo AES
1355 { hashname := "neogeo"
1356 biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1357 param2 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1358 }
1359 CheckFile(emuPath . "\hash\" . hashname . ".xml","Could not find a software list for the system " . mameID) ;Check if software list for selected system exists
1360 }
1361
1362 If (mameID = "vectrex") { ; GCE Vectrex
1363 VectrexArtFile := new File(emuPath . "\artwork\Vectrex\" . romName . ".png")
1364 param2 := " -view " . (If VectrexArtFile.Exist() ? ("""" . romName . """") : "standard") ; need overlays extracted in the artwork\vectres folder. PNGs must match romName
1365 }
1366
1367 sysStaticParams := If sysStaticParams != "" ? A_Space . sysStaticParams : "" ; tacking on a space in case user forgot to add one
1368 romParams := If romParams != "" ? A_Space . romParams : "" ; tacking on a space in case user forgot to add one
1369
1370 mameRomPaths := StringUtils.Replace(romPathFromIni,"|",`"`;`",1) ; replace all instances of | to ; in the Rom_Path from RL's Emulators.ini so MAME knows where to find your roms
1371 mameRomPaths := " -rompath """ . (If mameRomName ? romPath : mameRomPaths) . (If mameBiosPath ? ";" . mameBiosPath : "") . """" ; If using an alt rom, only supply mame with the path to that rom so it doesn't try to use the original rom. If a bios path was supplied, add it into the rom paths sent to MAME
1372
1373 If StringUtils.InStr(romParams,"-rompath")
1374 ScriptError("""-rompath"" is defined as a parameter for " . romName . ". The MAME module fills this automatically so please remove this from Params in the module's settings.")
1375 If StringUtils.InStr(sysStaticParams,"-rompath")
1376 ScriptError("""-rompath"" is defined as a parameter for " . mameSystem . ". The MAME module fills this automatically so please remove this from Params in the module's settings.")
1377
1378 ; use a custom rom name, not the one from the db
1379 If mameRomName {
1380 MameRomOriginalFile := new File(romPath . "\" . romName . romExtension)
1381 MameRomCustomFile := new File(romPath . "\" . mameRomName . romExtension)
1382 errLvl := MameRomOriginalFile.Move(MameRomCustomFile.FileFullPath) ; rename rom to match what mame needs
1383 originalRomName := romName ; store romName from database so we know what to rename it back to later
1384 romName := mameRomName
1385 If errLvl
1386 ScriptError("There was a problem renaming " . romName . " to " . mameRomName . " in " . romPath . ". Please check you have write permission to this folder/file and you don't already have a file named """ . mameRomName . """ in your rom folder.",8)
1387 Else ; if rename was successful, set var so we know to move it back later
1388 fileRenamed := 1
1389 }
1390
1391 ; use a custom cfg file if it exists and append it to param1
1392 CustomCFGPath := new Folder(emuPath . "\cfg\" . mameID . "\" . dbName)
1393 If CustomCFGPath.Exist()
1394 param1 := " -cfg_directory """ . CustomCFGPath.FileFullPath . """" . param1
1395
1396 If (bilinearFilter = "true")
1397 bilinearEnabled := " -filter"
1398 Else
1399 bilinearEnabled := " -nofilter"
1400
1401 If (cheatMode = "true") {
1402 CheatZipFile := new File(emuPath . "\cheat.zip")
1403 Cheat7zFile := new File(emuPath . "\cheat.7z")
1404 If (!CheatZipFile.Exist() && !Cheat7zFile.Exist())
1405 RLLog.Warning("Module - You have cheats enabled for " . MEmu . " but could not locate a ""cheat.zip"" or ""cheat.7z"" in " . emuPath)
1406 Else {
1407 RLLog.Info("Module - Cheat file found in " . emuPath)
1408 If cheatModeKey ; if user wants to use a key to enable CheatMode
1409 cheatEnabled := If XHotkeyAllKeysPressed(cheatModeKey) ? " -cheat" : "" ; only enables cheatMode when key is held down on launch
1410 Else ; no cheat mode key defined
1411 cheatEnabled := " -cheat"
1412 }
1413 }
1414
1415 If (RequiresReset = "true")
1416 { ; Generate a lua script to send a system soft reset
1417 ScriptFileName := GenerateSoftResetScript()
1418 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1419 }
1420
1421 HideAppStart(hideEmuObj,hideEmu)
1422
1423
1424
1425 If (legacyMode = "true")
1426 { RLLog.Info("Module - Running MAME in legacy Mode")
1427 errLvl := primaryExe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6) . fullscreenParam . cheatEnabled . volume . mameRomPaths . sysStaticParams . romParams, winstate,"","","",1) ; wrap quotes around exe
1428 } Else {
1429 RLLog.Info("Module - Running MAME in non-legacy mode")
1430 ; If (networkPlayers = 1 || !linkEnabledGame) {
1431 If !networkSession {
1432 RLLog.Info("Module - SinglePlayer session")
1433 errLvl := primaryExe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6 ) . ctrlrFile . mameRomPaths . sysStaticParams . romParams . fullscreenParam . hlsl . glsl . cheatEnabled . volume . inipath . hashpath . verticalRotationMode . videomode . artworkCrop . useBezels . useOverlays . useBackdrops . useCpanels . useMarquees . autosave . bootscript . bilinearEnabled . " -skip_gameinfo", winstate,"","","",1) ; wrap quotes around exe
1434 } Else { ; multiplayer game run
1435 RLLog.Info("Module - Network/MultiPlayer session")
1436 BuildNVRAMObject() ; build nvram object
1437 ;screen positions
1438 screenPos := []
1439 screenPos := SplitScreenPos(networkPlayers,splitScreen2PlayersMode,splitScreen3PlayersMode,maxPlayersPerMonitor)
1440 If (networkType="localLink")
1441 globalInputs := " -global_inputs" ; tell mame to accept inputs when its window is not focused
1442 Loop % networkPlayers
1443 {
1444 currentPlayer := A_Index
1445 ; Update NVRAM setting(s)
1446 If (enableNVRAMAutomation = "true") {
1447 If nvramSettings[romName]["Settings"]["Credit"]["Position"].MaxIndex() { ; If nvram settings exist for this game
1448 NVRamFile%currentPlayer% := new File(emuPath . "\nvram" . (If currentPlayer = 1 ? "" : currentPlayer) . "\" . romName . "\" . nvramSettings[romName]["Settings"]["NVRAM"]["File"][1])
1449 If NVRamFile%currentPlayer%.Exist() {
1450 RLLog.Info("Module - Checking nvram file(s) for required changes")
1451 If (networkType = "localLink") { ; only local link is supported for now
1452 ; Parse through each setting of each player and lookup the position to write new setting to the nvram file
1453 for playerOptionLabel, selectedPlayerOption in nvramSettings[romName]["Player"][currentPlayer] ;looping on each player selected options
1454 for index, setting in nvramSettings[romName]["Settings"][playerOptionLabel]["Position"] ;Looping through hex values of the current option
1455 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"][playerOptionLabel]["Position"][index],nvramSettings[romName]["Settings"][playerOptionLabel]["Option"][selectedPlayerOption][index])
1456 for index, playerCRC in nvramSettings[romName]["CRC"]["Player"][currentPlayer] ;looping on each player selected options
1457 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["CRC"]["Position"][index],nvramSettings[romName]["CRC"]["Player"][currentPlayer][index])
1458 } Else If (networkType = "Server") {
1459 RLLog.Info("Module - Converting this nvram to ""Master"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1460 ; RLLog.Info("Module - NVRAM automation for ""Server"" not supported at this time") ; only idea to get this to work is to duplicate nvram edit code from local link here but only set player 1
1461 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Master"][1])
1462 } Else If (networkType = "Client") {
1463 RLLog.Info("Module - Converting this nvram to ""Slave"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1464 ; RLLog.Info("Module - NVRAM automation for ""Client"" not supported at this time") ; only idea to get this to work is to duplicate nvram edit code from local link here but only set player 2
1465 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Slave"][1])
1466 }
1467 } Else
1468 RLLog.Info("Module - Did not find an NVRAM file to update for player " . currentPlayer . " (Ignore this if this is the first time you are launching this rom): " . NVRamFile%currentPlayer%.FileFullPath)
1469 } Else
1470 RLLog.Info("Module - This rom does not contain an entry in the NVRAM object")
1471 }
1472 ;;Run Line for each of the multiplayer MAME instances using the nvramPath and cfgPath variables to the extra mames
1473 MameMultiPlayer%currentPlayer%Exe := new Process(emuPath . "\" . executable) ; instantiate a new process for each player
1474 errLvl := MameMultiPlayer%currentPlayer%Exe.Run(" " . (If mameID = "MAME" ? romName : mameID . param1 . param2 . param3 . param4 . param5 . param6) . ctrlrFile . mameRomPaths . multiPlayerObj[currentPlayer]["CfgDir"] . multiPlayerObj[currentPlayer]["NvramDir"] . globalInputs . multiPlayerObj[currentPlayer]["LocalHost"] . multiPlayerObj[currentPlayer]["LocalPort"] . multiPlayerObj[currentPlayer]["RemoteHost"] . multiPlayerObj[currentPlayer]["RemotePort"] . sysStaticParams . romParams . fullscreenParam . hlsl . glsl . cheatEnabled . volume . inipath . hashpath . verticalRotationMode . videomode . artworkCrop . useBezels . useOverlays . useBackdrops . useCpanels . useMarquees . autosave . bootscript . bilinearEnabled . " -skip_gameinfo", winstate,"","","",1) ; wrap quotes around exe
1475 MameMultiPlayer%currentPlayer%Exe.Process("Exist") ; get PID
1476 MameMultiPlayer%currentPlayer%Window := new Window(new WindowTitle("","","","",MameMultiPlayer%currentPlayer%Exe.PID))
1477 MameMultiPlayer%currentPlayer%Window.ExcludeTitle := "MAMEOutput" ; ignore the mame debug window
1478 MameMultiPlayer%currentPlayer%Window.Wait()
1479 }
1480
1481 Loop % networkPlayers
1482 {
1483 MameMultiPlayer%A_Index%Window.Get("ID")
1484 MameMultiPlayer%A_Index%Window.RemoveTitlebar()
1485 MameMultiPlayer%A_Index%Window.ToggleMenu()
1486 MameMultiPlayer%A_Index%Window.RemoveBorder()
1487 MameMultiPlayer%A_Index%Window.Move(screenPos[A_Index].X, screenPos[A_Index].Y, screenPos[A_Index].W, screenPos[A_Index].H)
1488 TimerUtils.Sleep(50)
1489 }
1490 }
1491 }
1492
1493 If errLvl {
1494 If (errLvl = 1)
1495 Error := "Failed Validity"
1496 Else If(errLvl = 2)
1497 Error := "Missing Files"
1498 Else If(errLvl = 3)
1499 Error := "Fatal Error"
1500 Else If(errLvl = 4)
1501 Error := "Device Error"
1502 Else If(errLvl = 5)
1503 Error := "Game Does Not Exist"
1504 Else If(errLvl = 6)
1505 Error := "Invalid Config"
1506 Else If StringUtils.Contains(errLvl,"7|8|9")
1507 Error := "Identification Error"
1508 Else
1509 Error := "MAME Error"
1510 RLLog.Error("MAME Error - " . Error)
1511 }
1512
1513 emuPrimaryWindow.Wait()
1514 emuPrimaryWindow.WaitActive()
1515
1516 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1517 {
1518 KeyUtils.SendCommand("X",1000) ; To bypass the first screen
1519 If (Command)
1520 KeyUtils.SendCommand(Command,,,,,,CommandWaitOffset) ; Send command affect it with an offset if needed
1521 }
1522
1523 ; Close the debugger window if exists
1524 If (closeDebugWindow = "true") {
1525 emuDebugWindow.Wait(2)
1526 emuDebugWindow.Close()
1527 }
1528
1529 BezelDraw()
1530 HideAppEnd(hideEmuObj,hideEmu)
1531
1532 If (networkPlayers = 1 || !linkEnabledGame) {
1533 emuPrimaryWindow.Show() ; Show the emulator
1534 } Else {
1535 Loop % networkPlayers
1536 MameMultiPlayer%A_Index%Window.Show() ; Show the emulator
1537 MameMultiPlayer1Window.Activate() ; Activate first player window so that first player can use keyboard instead of last player
1538 }
1539
1540 FadeInExit()
1541 primaryExe.Process("WaitClose")
1542 7zCleanUp()
1543 BezelExit()
1544
1545 If fileRenamed { ; Rename file back to alternate name for next launch
1546 errLvl := MameRomCustomFile.Move(MameRomOriginalFile.FileFullPath) ; Put original name back
1547 If errLvl ; If rename was successful, set var so we know to move it back later
1548 ScriptError("There was a problem renaming " . MameRomCustomFile.FileName . " back to " . MameRomOriginalFile.FileName)
1549 }
1550
1551 FadeOutExit()
1552 ExitModule()
1553
1554
1555 ListXMLInfo(rom){ ; Returns MAME info about parent rom, orientation angle, resolution
1556 Global emuFullPath,emuPath,RLLog
1557 ListXMLObject := Object()
1558 listXMLVarLog := ""
1559 ComSpecProcess := new Process(ComSpec) ; instantiate cmd.exe process
1560 ComSpecProcess.RunDirect(comspec . " /c " . """" . emuFullPath . """" . " -listxml " . rom . " > tempBezel.txt", emuPath, "Hide", 1) ; Run from emu's folder
1561 TempBezelFile := new File(emuPath . "\tempBezel.txt")
1562 TempBezelFile.Read()
1563 StringUtils.RegExMatch(TempBezelFile.Text, "s)<(machine|game).*name=" . """" . rom . """" . ".*" . "cloneof=" . """" . "[^""""]*", parent)
1564 StringUtils.RegExMatch(parent,"cloneof=" . """" . ".*", parent)
1565 StringUtils.RegExMatch(parent,"""" . ".*", parent)
1566 parent := StringUtils.TrimLeft(parent, 1)
1567 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*rotate=" . """" . "[0-9]+" . """", angle)
1568 StringUtils.RegExMatch(angle,"[0-9]+", angle, "-6")
1569 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*width=" . """" . "[0-9]+" . """", width)
1570 StringUtils.RegExMatch(width,"[0-9]+", width, "-6")
1571 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*height=" . """" . "[0-9]+" . """", Height)
1572 StringUtils.RegExMatch(Height,"[0-9]+", Height, "-6")
1573 StringUtils.RegExMatch(TempBezelFile.Text, "s)<control.*ways=" . """" . "[0-9]+" . """", Ways)
1574 StringUtils.RegExMatch(Ways,"[0-9]+", Ways, "-6")
1575 logVars := "Parent|Angle|Height|Width|Ways"
1576 Loop, Parse, logVars, |
1577 {
1578 currentobj := {}
1579 currentobj.Label := A_Loopfield
1580 currentobj.Value := %A_Loopfield%
1581 ListXMLObject.Insert(currentobj["Label"], currentobj)
1582 listXMLLog .= "`r`n`t`t`t`t`t" . currentobj["Label"] . " = " . currentobj["Value"]
1583 }
1584 RLLog.Info("Module - MAME ListXML values: " . listXMLLog)
1585 If (ListXMLObject["Height"].Value > ListXMLObject["Width"].Value) {
1586 ListXMLObject["Angle"].Value := true
1587 RLLog.Info("Module - This game's height is greater than its width, forcing vertical mode")
1588 }
1589 TempBezelFile.Delete()
1590 Return ListXMLObject
1591 }
1592
1593 GenerateSoftResetScript(){ ; Generates a lua script to send a soft reset to MAME
1594 Global emuPath
1595
1596 SoftScriptFile := new File(emuPath . "\soft_reset.lua")
1597 ScriptFileName := emuPath . "\soft_reset.lua"
1598 SoftScriptFile.Delete()
1599
1600 AppendTxt :="
1601 (
1602 -- This script will reset the machine
1603 local function reset_machine()
1604 if resetcounter == nil then
1605 manager:machine():soft_reset();
1606 resetcounter = 1;
1607 end
1608 end
1609 if resetcounter == nil then
1610 emu.wait(1);
1611 reset_machine();
1612 end
1613 )"
1614 SoftScriptFile.Append(AppendTxt)
1615 Return SoftScriptFile.FileFullPath
1616 }
1617
1618 GeneratePressButtonScript(button1,button2=""){ ; Generates a lua script to send a soft reset to MAME
1619 Global emuPath
1620
1621 PressScriptFile := new File(emuPath . "\press_button.lua")
1622 PressScriptFile.Delete()
1623 If (button2) {
1624 button2str := "`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(1);`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(0);"
1625 }
1626
1627 AppendTxt :="
1628 (
1629 local function press_button()
1630 if resetcounter == nil then
1631 ioport[""" . button1 . """]:write(1);
1632 emu.wait(1);
1633 ioport[""" . button1 . """]:write(0);
1634 resetcounter = 1;" . button2str . "
1635 end
1636 end
1637 if resetcounter == nil then
1638 emu.wait(1);
1639 press_button();
1640 end
1641 )"
1642 PressScriptFile.Append(AppendTxt)
1643 Return PressScriptFile.FileFullPath
1644 }
1645
1646 BuildNVRAMObject() {
1647 Global nvramSettings,RLLog
1648 RLLog.Info("BuildNVRAMObject - Started")
1649
1650 nvramSettings := {}
1651
1652 nvramSettings["vr"] := {}
1653 nvramSettings["vr"]["Settings"] := {"BiosCounter":{"Position":["248"], "Option":{0:["00"], 1:["01"], 2:["02"], 3:["03"]}}, "Cabinet":{"Position":["52"], "Option":{"Special":["00"], "Standard":["01"], "Upright":["02"], "2PLink":["03"]}}, "Color":{"Position":["68"], "Option":{"Red":["00"], "Blue":["01"], "Yellow":["02"], "Green":["03"], "Black":["04"], "Pink":["05"], "SkyBlue":["06"], "Orange":["07"]}}, "Country":{"Position":["54"], "Option":{"Japan":["00"], "USA":["01"], "Export":["02"]}}, "Course":{"Position":["66"], "Option":{"Vote":["00"], "Beginner":["01"], "Middle":["02"], "Expert":["03"]}}, "CRC":{"Position":["16","18"]}, "Credit":{"Position":["32","40"], "Option":{"1":["00","00"], "Freeplay":["1A","01"]}}, "Difficulty":{"Position":["64"], "Option":{"Easy":["00"], "Normal":["01"], "Hard":["02"], "Hardest":["03"]}}, "Link":{"Position":["24"], "Option":{"None":["00"], "Master":["01"], "Slave":["02"], "Live":["03"]}}, "Monitor":{"Position":["22"], "Option":{"Standard":["00"], "Wide":["01"]}}, "NVRAM":{"File":["nvram"]}, "Race":{"Position":["70"], "Option":{"Normal":["00"], "Grandprix":["01"]}}, "StartCoin":{"Position":["42"], "Option":{1:["01"], 2:["02"], 3:["03"], 4:["04"], 5:["05"]}}}
1654
1655 nvramSettings["vr"]["Player"] := {}
1656 nvramSettings["vr"]["Player"].Insert(1, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Red", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Master", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1657 nvramSettings["vr"]["Player"].Insert(2, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Blue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1658 nvramSettings["vr"]["Player"].Insert(3, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Yellow", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1659 nvramSettings["vr"]["Player"].Insert(4, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Green", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1660 nvramSettings["vr"]["Player"].Insert(5, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Black", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1661 nvramSettings["vr"]["Player"].Insert(6, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Pink", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1662 nvramSettings["vr"]["Player"].Insert(7, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"SkyBlue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1663 nvramSettings["vr"]["Player"].Insert(8, {"BiosCounter":"3", "Cabinet":"Standard", "Color":"Orange", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Monitor":"Wide", "Race":"Normal", "StartCoin":"1"})
1664 nvramSettings["vr"]["CRC"] := {"Player":{1:["06","21"], 2:["3C","C7"], 3:["0E","5F"], 4:["FF","D8"], 5:["4B","7F"], 6:["BA","F8"], 7:["88","60"], 8:["79","E7"]}}
1665
1666 nvramSettings["vformula"] := {}
1667 nvramSettings["vformula"]["Settings"] := {"BiosCounter":{"Position":["248"], "Option":{0:["00"], 1:["01"], 2:["02"], 3:["03"]}}, "Color":{"Position":["68"], "Option":{"Red":["00"], "Blue":["01"], "Yellow":["02"], "Green":["03"], "Black":["04"], "Pink":["05"], "SkyBlue":["06"], "Orange":["07"]}}, "Country":{"Position":["54"], "Option":{"Japan":["00"], "USA":["01"], "Export":["02"]}}, "Course":{"Position":["66"], "Option":{"Vote":["00"], "Beginner":["01"], "Middle":["02"], "Expert":["03"]}}, "CRC":{"Position":["16","18"]}, "Credit":{"Position":["32","40"], "Option":{"1":["00","00"], "Freeplay":["1A","01"]}}, "Difficulty":{"Position":["64"], "Option":{"Easy":["00"], "Normal":["01"], "Hard":["02"], "Hardest":["03"]}}, "Link":{"Position":["24"], "Option":{"None":["00"], "Master":["01"], "Slave":["02"], "Live":["03"]}}, "NVRAM":{"File":["nvram"]}, "Race":{"Position":["70"], "Option":{"Normal":["00"], "Grandprix":["01"]}}, "Sound":{"Position":["22"], "Option":{"On":["00"], "Off":["01"]}}, "StartCoin":{"Position":["42"], "Option":{1:["01"], 2:["02"], 3:["03"], 4:["04"], 5:["05"]}}}
1668
1669 nvramSettings["vformula"]["Player"] := {}
1670 nvramSettings["vformula"]["Player"].Insert(1, {"BiosCounter":"1", "Color":"Red", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Master", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1671 nvramSettings["vformula"]["Player"].Insert(2, {"BiosCounter":"1", "Color":"Blue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1672 nvramSettings["vformula"]["Player"].Insert(3, {"BiosCounter":"1", "Color":"Yellow", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1673 nvramSettings["vformula"]["Player"].Insert(4, {"BiosCounter":"1", "Color":"Green", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1674 nvramSettings["vformula"]["Player"].Insert(5, {"BiosCounter":"1", "Color":"Black", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1675 nvramSettings["vformula"]["Player"].Insert(6, {"BiosCounter":"1", "Color":"Pink", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1676 nvramSettings["vformula"]["Player"].Insert(7, {"BiosCounter":"1", "Color":"SkyBlue", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1677 nvramSettings["vformula"]["Player"].Insert(8, {"BiosCounter":"1", "Color":"Orange", "Country":"USA", "Course":"Vote", "Credit":"Freeplay", "Difficulty":"Normal", "Link":"Slave", "Race":"Normal", "Sound":"On", "StartCoin":"1"})
1678 nvramSettings["vformula"]["CRC"] := {"Player":{1:["F2","EB"], 2:["C8","0D"], 3:["FA","95"], 4:["0B","12"], 5:["BF","B5"], 6:["4E","32"], 7:["7C","AA"], 8:["8D","2D"]}}
1679
1680 RLLog.Info("BuildNVRAMObject - Ended")
1681 }
1682
1683 BezelLabel:
1684 emuConsoleWindow.Set("Transparent",0)
1685 Return
1686
1687 HaltEmu:
1688 If (pauseMethod = 1)
1689 { disableSuspendEmu := "true"
1690 disableRestoreEmu := "true"
1691 emuPrimaryWindow.PostMessage("0x211",1)
1692 } Else If (pauseMethod = 2)
1693 { disableSuspendEmu := "true"
1694 emuPrimaryWindow.PostMessage("0x211",1)
1695 } Else If (pauseMethod = 3)
1696 { disableSuspendEmu := "true"
1697 disableRestoreEmu := "true"
1698 emuPrimaryWindow.PostMessage(0x0400+6,1)
1699 } Else If (pauseMethod = 4)
1700 { disableSuspendEmu := "true"
1701 emuPrimaryWindow.PostMessage(0x0400+6,1)
1702 } Else If (pauseMethod = 5)
1703 { disableSuspendEmu := "true"
1704 KeyUtils.Send("{P down}")
1705 TimerUtils.Sleep(1000)
1706 KeyUtils.Send("{P up} ")
1707 }
1708 Return
1709 RestoreEmu:
1710 If (pauseMethod = 1)
1711 emuPrimaryWindow.PostMessage("0x212",1)
1712 Else If (pauseMethod = 2)
1713 emuPrimaryWindow.PostMessage("0x212",1)
1714 Else If (pauseMethod = 3)
1715 emuPrimaryWindow.PostMessage(0x0400+6,0)
1716 Else If (pauseMethod = 4)
1717 emuPrimaryWindow.PostMessage(0x0400+6,0)
1718 Else If (pauseMethod = 5) {
1719 disableSuspendEmu := "true"
1720 KeyUtils.Send("{P down}")
1721 TimerUtils.Sleep(1000)
1722 KeyUtils.Send("{P up} ")
1723 }
1724 emuPrimaryWindow.Activate()
1725 Return
1726
1727 CloseProcess:
1728 FadeOutStart()
1729 If (networkSession && networkPlayers > 1) {
1730 Loop % networkPlayers {
1731 MameMultiPlayer%A_Index%Window.Close()
1732 MameMultiPlayer%A_Index%Window.WaitClose()
1733 }
1734 } Else
1735 emuPrimaryWindow.Close()
1736 Return
1737
173813:26:08:854 | RL | INFO | +16 | BuildScript - Loaded Pause scripts
173913:26:08:856 | RL | INFO | +0 | BuildScript - Loaded Multi-Player scripts
174013:26:08:857 | RL | INFO | +16 | BuildScript - Loaded Statistics.ahk script
174113:26:08:857 | RL | INFO | +0 | BuildScript - Loaded User Functions.ahk script
174213:26:08:857 | RL | INFO | +0 | BuildScript - Finished injecting functions into module
174313:26:08:859 | RL | INFO | +0 | Main - Module is built
174413:26:08:859 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\AutoHotkey.dll exists
174513:26:08:860 | RL | INFO | +0 | Main - Hiding taskbar
174613:26:08:969 | RL | INFO | +109 | Main - Starting timer to watch if Front End gets displaced and restore it if it does.
174713:26:08:969 | RL | INFO | +0 | Main - Running module
174813:26:09:128 | MD | INFO | +N/A | Module initialized
174913:26:09:128 | MD | INFO | +0 | CheckFile - Checking if D:\Utilities\3rd Party\Xpadder\Xpadder\Xpadder.exe exists
175013:26:09:129 | MD | INFO | +0 | Keymapper - Loading xpadder
175113:26:09:129 | MD | INFO | +0 | RunKeymapper - Started, using method "load"
175213:26:09:129 | MD | INFO | +0 | GetJoystickArray - Started
175313:26:09:256 | MD | INFO | +125 | GetJoystickGUID - Started
175413:26:09:256 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 70ACC850BC70E6118005444553540000
175513:26:09:256 | MD | INFO | +0 | GetJoystickArray - Ended
175613:26:09:256 | MD | INFO | +0 | GetProfile - Loading Player 1 Profile -> D:\RocketLauncher\Profiles\xpadder\_Default\p1.xpadderprofile
175713:26:09:256 | MD | INFO | +0 | RunXpadder - Started
175813:26:09:256 | MD | INFO | +0 | Process - Exist JoyToKey.exe
175913:26:09:258 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\Xpadder\Xpadder\Xpadder.exe /C
176013:26:09:301 | MD | INFO | +47 | Process - WaitClose Xpadder.exe 2
176113:26:09:409 | MD | INFO | +109 | Run - Running: D:\Utilities\3rd Party\Xpadder\Xpadder\Xpadder.exe "D:\RocketLauncher\Profiles\xpadder\_Default\p1.xpadderprofile" /M
176213:26:09:416 | MD | INFO | +0 | RunXpadder - Ended
176313:26:09:416 | MD | INFO | +0 | RunKeymapper - Ended
176413:26:09:417 | MD | INFO | +0 | StartModule - Started
176513:26:09:417 | MD | INFO | +0 | StartModule - MEmu: MAME
1766 MEmuV: v0.166
1767 MURL: http://www.mame.net/
1768 MAuthor: djvj,faahrev,brolly,Tomkun
1769 MVersion: 2.3.7
1770 MCRC: 5C737136
1771 iCRC: 25E2CCF
1772 MID:
1773 MSystem: "AAE","Aamber Pegasus","Acorn Electron","Amstrad CPC","Amstrad GX4000","APF Imagination Machine","Apple II","Apple IIGS","Applied Technology MicroBee","Atari 8-Bit","Atari 2600","Atari 5200","Atari 7800","Atari Classics","Atari Jaguar","Atari Lynx","Bally Astrocade","Bandai Super Vision 8000","Bandai WonderSwan","Bandai WonderSwan Color","Bit Corporation Gamate","Camputers Lynx","Capcom","Capcom Classics","Capcom Play System","Capcom Play System II","Capcom Play System III","Casio PV-1000","Casio PV-2000","Cave","Coleco ADAM","ColecoVision","Commodore 64","Commodore MAX Machine","Creatronic Mega Duck","Data East Classics","EACA EG2000 Colour Genie","Emerson Arcadia 2001","Entex Adventure Vision","Epoch Game Pocket Computer","Epoch Super Cassette Vision","Exidy Sorcerer","Fairchild Channel F","Fujitsu FM-7","Funtech Super Acan","GamePark 32","GCE Vectrex","Hartung Game Master","HBMAME","Interton VC 4000","Irem Classics","JungleTac Sport Vii","Jupiter Ace","Konami Classics","LaserDisc","Magnavox Odyssey 2","MAME","Matra & Hachette Alice","Mattel Aquarius","Mattel Intellivision","MGT Sam Coupe","Midway Classics","Milton Bradley MicroVision","Namco Classics","Namco System 22","NEC PC-8801","NEC PC Engine","NEC PC Engine-CD","NEC SuperGrafx","NEC TurboGrafx-16","NEC TurboGrafx-CD","Nintendo 64","Nintendo 64DD","Nintendo Arcade Systems","Nintendo Classics","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Advance","Nintendo Game Boy Color","Nintendo Pokemon Mini","Nintendo Satellaview","Nintendo Super Famicom","Nintendo Super Game Boy","Nintendo Virtual Boy","Othello Multivision","PacMAME","Philips CD-i","Philips VG 5000","Philips Videopac Plus G7400","RCA Studio II","Sega 32X","Sega CD","Sega Classics","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Model 1","Sega Pico","Sega Saturn","Sega SC-3000","Sega SG-1000","Sega ST-V","Sega VMU","Sharp X1","Sinclair ZX81","SNK Classics","SNK Neo Geo","SNK Neo Geo AES","SNK Neo Geo AES","SNK Neo Geo CD","SNK Neo Geo MVS","SNK Neo Geo Pocket","SNK Neo Geo Pocket Color","Sony PlayStation","Sony PocketStation","Sord M5","Soundic Victory MPT-02","Super Nintendo Entertainment System","Taito Classics","Tandy TRS-80 Color Computer","Texas Instruments TI 99-4A","Tiger Game.com","Tomy Tutor","VTech CreatiVision","Watara Supervision","Williams Classics"
177413:26:09:417 | MD | INFO | +0 | StartModule - You have a supported System Name for this module: "MAME"
177513:26:09:418 | MD | INFO | +0 | PluginInit - Started
177613:26:09:418 | MD | INFO | +0 | CheckFile - Checking if D:\HyperSpin\Databases\MAME\MAME.xml exists
177713:26:09:450 | MD | INFO | +32 | BuildAssetsTable - Started - Building Table for: Game Logo|System Logo
177813:26:09:450 | MD | INFO | +0 | BuildAssetsTable - Ended
177913:26:09:450 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Artwork1|Box Art|Cartridge|Flyers|Letters|Other
178013:26:09:481 | MD | INFO | +31 | BuildAssetsTable - Ended
178113:26:09:502 | MD | INFO | +31 | BuildAssetsTable - Started - Building Table for: Game Video|System Video
178213:26:09:502 | MD | INFO | +0 | BuildAssetsTable - Ended
178313:26:09:502 | MD | INFO | +0 | PluginInit - Ended
178413:26:09:502 | MD | INFO | +0 | SetDisplaySettings - Started
178513:26:09:502 | MD | INFO | +0 | SetDisplaySettings - Ended
178613:26:09:502 | MD | INFO | +0 | LEDBlinky - Started, sending mode START
178713:26:09:502 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\LEDBlinky\LEDBlinky\LEDBlinky.exe "sf2ce" "MAME"
178813:26:09:511 | MD | INFO | +0 | LEDBlinky - Ended
178913:26:09:511 | MD | INFO | +0 | WinIPAC - Started with mode: START
179013:26:09:511 | MD | INFO | +0 | Run - Running: C:\Program Files (x86)\WinIPAC V2\WinIPAC.exe "D:\RocketLauncher\Profiles\WinIPAC\MAME.ipc"
179113:26:09:534 | MD | INFO | +31 | WinIPAC - Ended
179213:26:09:537 | MD | INFO | +0 | StartModule - Ended
179313:26:09:537 | MD | INFO | +0 | i18n - Started
179413:26:09:537 | MD | INFO | +0 | i18n - Ended, using "Abrir" for "dialog.open"
179513:26:09:538 | MD | WARNING | +0 | Module - "MAME" is not a known console or computer system. Defaulting to MAME's Arcade mode for the remainder of this MAME module.
179613:26:09:538 | MD | INFO | +0 | RIniFile.Read - Module - Fullscreen: true (DEFAULT)
179713:26:09:538 | MD | INFO | +0 | RIniFile.Read - Module - LegacyMode: false (DEFAULT)
179813:26:09:538 | MD | INFO | +0 | RIniFile.Read - Module - MAME_BIOS_Path: D:\Emulators\MAME\MAME\roms (DEFAULT)
179913:26:09:538 | MD | INFO | +0 | RIniFile.Read - Module - Videomode: d3d (DEFAULT)
180013:26:09:538 | MD | INFO | +0 | RIniFile.Read - Module - PauseMethod: 1 (DEFAULT)
180113:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - BilinearFilter: false (DEFAULT)
180213:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - HLSL: false (DEFAULT)
180313:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - GLSL: false (DEFAULT)
180413:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - BezelMode: layout (DEFAULT)
180513:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - VerticalRotationMode: none (DEFAULT)
180613:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - CheatMode: false (DEFAULT)
180713:26:09:539 | MD | INFO | +0 | RIniFile.Read - Module - CheatModeKey: (NO VALUE)
180813:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - UseSoftwareList: false (DEFAULT)
180913:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - StaticParameters: (NO VALUE)
181013:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
181113:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
181213:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - MameRomName: (NO VALUE)
181313:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Autosave: false (DEFAULT)
181413:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Volume: (NO VALUE)
181513:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Artwork_Crop: true (DEFAULT)
181613:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Use_Bezels: false (DEFAULT)
181713:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Use_Overlays: true (DEFAULT)
181813:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Use_Backdrops: true (DEFAULT)
181913:26:09:540 | MD | INFO | +0 | RIniFile.Read - Module - Use_Cpanels: false (DEFAULT)
182013:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - Use_Marquees: false (DEFAULT)
182113:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - IniPath: (NO VALUE)
182213:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - HashPath: (NO VALUE)
182313:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - UseControllerRemap: true (DEFAULT)
182413:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapPath: D:\Emulators\MAME\MAME\ControllerRemap\ControllerRemap.exe (DEFAULT)
182513:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapConfigPath: D:\Emulators\MAME\MAME\ControllerRemap\ctrlr\ (DEFAULT)
182613:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - MAMECtrlrPath: D:\Emulators\MAME\MAME\ctrlr (DEFAULT)
182713:26:09:541 | MD | INFO | +0 | RIniFile.Read - Module - Enable_Link_Play: false (DEFAULT)
182813:26:09:542 | MD | INFO | +0 | GetFadePicFile - Randomized images and Fade will use D:\RocketLauncher\Media\Fade\_Default\Layer 1.png
182913:26:09:643 | MD | INFO | +110 | DefaultAnimateFadeIn - Started, direction is: in
183013:26:09:643 | MD | INFO | +0 | DefaultAnimateFadeIn - Drawing First FadeIn Image.
183113:26:10:145 | MD | INFO | +500 | DefaultAnimateFadeIn - Ended
183213:26:10:153 | MD | INFO | +0 | DefaultFadeAnimation - Started
183313:26:10:154 | MD | INFO | +0 | GetFadePicFile - Randomized images and Fade will use D:\RocketLauncher\Media\Fade\_Default\Info Bar.png
183413:26:10:172 | MD | INFO | +31 | GetFadePicFile - Randomized images and Fade will use D:\RocketLauncher\Media\Fade\_Default\Layer 3.png
183513:26:10:175 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Genre Logo|Rating Logo|Developer Logo|Publisher Logo|Year Logo
183613:26:10:175 | MD | INFO | +0 | BuildAssetsTable - Ended
183713:26:10:175 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: System Logo|Game Logo|Game Logo
183813:26:10:175 | MD | INFO | +0 | BuildAssetsTable - Ended
183913:26:10:259 | MD | INFO | +78 | DefaultFadeAnimation - Ended
184013:26:10:259 | MD | INFO | +0 | DxwndUpdateIniPath - DxwndIni set to D:\HyperSpin\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini
184113:26:10:259 | MD | INFO | +0 | StartGlobalUserFeatures - Starting
184213:26:10:259 | MD | INFO | +0 | StartGlobalUserFeatures - Ending
184313:26:10:316 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage
184413:26:10:380 | MD | INFO | +62 | DefaultFadeAnimationLoop - percentage8
184513:26:10:440 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage17
184613:26:10:469 | MD | INFO | +31 | Module - MAME ListXML values:
1847 Parent =
1848 Angle = 0
1849 Height = 224
1850 Width = 384
1851 Ways = 8
185213:26:10:470 | MD | INFO | +0 | Controller Remap: Start
185313:26:10:470 | MD | INFO | +0 | Controller Remap: ControllerRemapConfigPath: D:\Emulators\MAME\MAME\ControllerRemap\ctrlr\
185413:26:10:470 | MD | INFO | +0 | Controller Remap: No Controller config file found.
185513:26:10:470 | MD | INFO | +0 | Controller Remap: End
185613:26:10:470 | MD | INFO | +0 | Module - Detected MAME Product Version from 'D:\Emulators\MAME\MAME\mame64.exe' is 177
185713:26:10:470 | MD | INFO | +0 | Module - Running MAME in non-legacy mode
185813:26:10:470 | MD | INFO | +0 | Module - SinglePlayer session
185913:26:10:470 | MD | INFO | +0 | PreLaunch - Starting
186013:26:10:470 | MD | INFO | +0 | PreLaunch - Ending
186113:26:10:471 | MD | INFO | +0 | Process.Run - Running: "D:\Emulators\MAME\MAME\mame64.exe" sf2ce -rompath "D:\Games\Complete Sets\MAME\ROMs;D:\Emulators\MAME\MAME\roms" -nowindow -nohlsl_enable -nogl_glsl -video d3d -artwork_crop -nouse_bezels -use_overlays -use_backdrops -nouse_cpanels -nouse_marquees -nofilter -skip_gameinfo
186213:26:10:502 | MD | INFO | +31 | DefaultFadeAnimationLoop - percentage25
186313:26:10:505 | MD | INFO | +0 | PostLaunch - Starting
186413:26:10:505 | MD | INFO | +0 | PostLaunch - Ending
186513:26:10:505 | MD | INFO | +0 | Window.Wait - Waiting for window "ahk_class MAME"
186613:26:10:561 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage33
186713:26:10:631 | MD | INFO | +62 | DefaultFadeAnimationLoop - percentage42
186813:26:10:750 | MD | INFO | +125 | DefaultFadeAnimationLoop - percentage50
186913:26:10:770 | MD | INFO | +16 | Window.WaitActive - Waiting for "ahk_class MAME"
187013:26:10:801 | MD | INFO | +31 | DefaultFadeAnimationLoop - percentage67
187113:26:10:857 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage73
187213:26:10:927 | MD | INFO | +62 | DefaultFadeAnimationLoop - percentage81
187313:26:10:982 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage90
187413:26:11:050 | MD | INFO | +62 | DefaultFadeAnimationLoop - percentage98
187513:26:11:108 | MD | INFO | +63 | DefaultFadeAnimationLoop - percentage100
187613:26:11:108 | MD | INFO | +0 | GetFadePicFile - Randomized images and Fade will use D:\RocketLauncher\Media\Fade\_Default\7z complete.mp3
187713:26:11:108 | MD | INFO | +0 | DefaultFadeAnimationLoop - Playing 7z fade complete sound: D:\RocketLauncher\Media\Fade\_Default\7z complete.mp3
187813:26:11:202 | MD | INFO | +93 | DefaultFadeAnimationLoop - percentage100
187913:26:11:752 | MD | INFO | +547 | DefaultAnimateFadeIn - Started, direction is: out
188013:26:12:276 | MD | INFO | +516 | DefaultAnimateFadeIn - Ended
188113:26:12:362 | MD | INFO | +94 | PostLoad - Starting
188213:26:12:362 | MD | INFO | +0 | PostLoad - Ending
188313:26:12:362 | MD | INFO | +0 | Process.Process - "WaitClose" "mame64.exe"
188413:26:42:842 | MD | INFO | +30484 | CloseProcess - Started, user requested to end launched application
188513:26:42:843 | MD | INFO | +0 | GetFadePicFile - Randomized images and Fade will use D:\RocketLauncher\Media\Fade\_Default\Layer -1 (2).png
188613:26:42:926 | MD | INFO | +78 | DefaultAnimateFadeOut - Started, direction is: in
188713:26:43:428 | MD | INFO | +500 | DefaultAnimateFadeOut - Ended
188813:26:44:364 | MD | INFO | +938 | CloseProcess - Ended
188913:26:44:365 | MD | INFO | +0 | StopGlobalUserFeatures - Starting
189013:26:44:365 | MD | INFO | +0 | StopGlobalUserFeatures - Ending
189113:26:44:366 | MD | INFO | +0 | DefaultAnimateFadeOut - Started, direction is: out
189213:26:44:865 | MD | INFO | +500 | DefaultAnimateFadeOut - Ended
189313:26:44:868 | MD | INFO | +0 | ExitModule - Started
189413:26:44:868 | MD | INFO | +0 | Starting Updating Statistics:
189513:26:44:987 | MD | INFO | +125 | Game section statistics updated.
189613:26:44:987 | MD | INFO | +0 | RunKeymapper - Started, using method "unload"
189713:26:44:987 | MD | INFO | +0 | GetJoystickArray - Started
189813:26:44:017 | MD | INFO | +31 | GetJoystickGUID - Started
189913:26:45:017 | MD | INFO | +0 | GetJoystickGUID - Ended and found GUID: 70ACC850BC70E6118005444553540000
190013:26:45:017 | MD | INFO | +0 | GetJoystickArray - Ended
190113:26:45:017 | MD | WARNING | +0 | GetProfile - Keymapper support is enabled for "xpadder", but could not find a HyperSpin profile or a blank profile in D:\RocketLauncher\Profiles\xpadder for controller I-PAC Ultimate
190213:26:45:017 | MD | INFO | +0 | RunXpadder - Started
190313:26:45:017 | MD | INFO | +0 | Process - Exist JoyToKey.exe
190413:26:45:019 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\Xpadder\Xpadder\Xpadder.exe /C
190513:26:45:027 | MD | INFO | +0 | Process - WaitClose Xpadder.exe 2
190613:26:45:237 | MD | WARNING | +219 | RunXpadder - No profiles found and nothing to tell Xpadder to load
190713:26:45:237 | MD | INFO | +0 | RunXpadder - Ended
190813:26:45:237 | MD | INFO | +0 | RunKeymapper - Ended
190913:26:45:237 | MD | INFO | +0 | LEDBlinky - Started, sending mode END
191013:26:45:237 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\LEDBlinky\LEDBlinky\LEDBlinky.exe 4
191113:26:45:269 | MD | INFO | +31 | LEDBlinky - Ended
191213:26:45:269 | MD | INFO | +0 | PostExit - Starting
191313:26:45:269 | MD | INFO | +0 | PostExit - Ending
191413:26:45:269 | MD | INFO | +0 | WinIPAC - Started with mode: END
191513:26:45:269 | MD | INFO | +0 | Run - Running: C:\Program Files (x86)\WinIPAC V2\WinIPAC.exe "D:\RocketLauncher\Profiles\WinIPAC\HyperSpin.ipc"
191613:26:45:277 | MD | INFO | +0 | WinIPAC - Ended
191713:26:45:277 | MD | INFO | +0 | ExitModule - Ended
1918End of Module Logs
191913:26:45:315 | RL | INFO | +36344 | Main - Module ended, exiting RocketLauncher normally
192013:26:45:315 | RL | INFO | +0 | ExitScript - Started
192113:26:45:322 | RL | INFO | +0 | ExitScript - Restoring taskbar
192213:26:45:449 | RL | INFO | +125 | SystemCursor - Restoring mouse cursor
192313:26:45:458 | RL | INFO | +15 | ExitScript - Restored cursor
1924[/code]