· 10 years ago · Sep 20, 2016, 04:32 PM
1[code]
218:26:08:594 | RL | INFO | +N/A | Main - RocketLauncher v1.1.1.1 (www.rlauncher.com)
318:26:08:786 | RL | INFO | +188 | 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: 14321.91 MB
10 Used Memory: 2019.734 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
3718:26:08:786 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\RocketLauncher.exe exists
3818:26:08:787 | RL | INFO | +0 | Main - Raw CLI received: "-s AAE -r solarq -f D:\HyperSpin\HyperSpin.exe -p HyperSpin -c 1 -o 1"
3918:26:08:787 | RL | INFO | +0 | Main - Loading Front End Plugin: "HyperSpin"
4018:26:08:787 | RL | INFO | +0 | Main - RocketLauncher received "AAE" and "solarq"
4118:26:08:795 | RL | INFO | +15 | Main - Did not find a "D:\RocketLauncher\Settings\AAE\Game Options.ini" file, skipping any game-specific options.
4218:26:08:795 | RL | INFO | +0 | Main - solarq is using the default emulator: MAME
4318:26:08:795 | RL | INFO | +0 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\AAE\Emulators.ini
4418:26:08:795 | RL | INFO | +0 | Main - Checking for a [MAME] section in D:\RocketLauncher\Settings\Global Emulators.ini
4518:26:08:795 | RL | INFO | +0 | Main - Found [MAME] in D:\RocketLauncher\Settings\Global Emulators.ini
4618:26:08:796 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Modules\MAME\MAME.ahk exists
4718:26:08:800 | RL | INFO | +0 | Main - CRC Check - CRC matches, this is an official unedited module.
4818:26:08:800 | RL | INFO | +0 | Main - solarq will use module: D:\RocketLauncher\Modules\MAME\MAME.ahk
4918:26:08:803 | RL | WARNING | +0 | RIniLoadVar - Created missing Global ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\Global RocketLauncher.ini"
5018:26:08:803 | RL | WARNING | +0 | RIniLoadVar - Created missing System ini key: "Fade_Click_Through " in section: "Fade" in "D:\RocketLauncher\Settings\AAE\RocketLauncher.ini"
5118:26:08:824 | RL | INFO | +32 | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
5218:26:08:826 | RL | INFO | +0 | CheckFile - Checking if D:\Emulators\MAME\MAME\mame64.exe exists
5318:26:08:827 | RL | INFO | +0 | Main - INI Keys read
5418:26:08:827 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.exe exists
5518:26:08:828 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\Module Extensions\7z.dll exists
5618:26:08:832 | RL | INFO | +0 | Main - "solarq" does not qualify for MultiGame. Only roms with any of these strings in their name are acceptable: \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
5718:26:08:832 | RL | INFO | +0 | CheckPaths - Started
5818:26:08:832 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\solarq.7z
5918:26:08:832 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Games\Complete Sets\MAME\ROMs\solarq\solarq.7z
6018:26:08:832 | RL | INFO | +0 | CheckPaths - Rom not found
6118:26:08:832 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\solarq.rar
6218:26:08:832 | RL | INFO | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Games\Complete Sets\MAME\ROMs\solarq\solarq.rar
6318:26:08:832 | RL | INFO | +0 | CheckPaths - Rom not found
6418:26:08:832 | RL | INFO | +0 | CheckPaths - Looking for rom: D:\Games\Complete Sets\MAME\ROMs\solarq.zip
6518:26:08:832 | RL | INFO | +0 | CheckPaths - Found rom: D:\Games\Complete Sets\MAME\ROMs\solarq.zip
6618:26:08:832 | RL | INFO | +0 | CheckPaths - Ended
6718:26:08:833 | 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 = false
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 = AAE
112 systemName = AAE
113 dbPath =
114 dbName = solarq
115 dbExt =
116 romName = solarq
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 =
164 logFile =
165 logLabel := [" INFO"," WARNING"," ERROR"," DEBUG"," TRACE"]
166 logLevel = 3
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 = true
211 hideFE = true
212 suspendFE = false
213 fadeIn = false
214 fadeInDuration = 500
215 fadeInTransitionAnimation = DefaultAnimateFadeIn
216 fadeInDelay = 0
217 fadeInExitDelay = 0
218 fadeOutExitDelay = 0
219 fadeOut = false
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|Manufacturer|Genre|Rating
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 = false
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 = false
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 = false
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\AAE
416 xPadderSystemProfile = D:\RocketLauncher\Profiles\xpadder\AAE\_Default
417 emuProfile = D:\RocketLauncher\Profiles\xpadder\AAE\MAME
418 romProfile = D:\RocketLauncher\Profiles\xpadder\AAE\solarq
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\AAE
424 ahkEmuProfile = D:\RocketLauncher\Profiles\AHK\AAE\MAME
425 ahkRomProfile = D:\RocketLauncher\Profiles\AHK\AAE\solarq
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
44518:26:08:836 | RL | INFO | +15 | BuildScript - Loaded XHotkey Init.ahk scripts
44618:26:08:836 | RL | INFO | +0 | BuildScript - Loaded Pause Init.ahk scripts
44718:26:08:837 | RL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts
44818:26:08:837 | RL | INFO | +0 | BuildScript - Loaded User Functions Init.ahk script
44918:26:08:837 | RL | INFO | +0 | BuildScript - Validating module
45018:26:08:847 | RL | INFO | +0 | BuildScript - Validation complete
45118:26:08:847 | RL | INFO | +0 | BuildScript - Module:
452 MEmu = MAME
453 MEmuV = v0.166
454 MURL = http://www.mame.net/
455 MAuthor = djvj,faahrev,brolly,Tomkun
456 MVersion = 2.3.7
457 MCRC = 5C737136
458 iCRC = 25E2CCF
459 mId = 635746812784197028
460 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"
461 ;----------------------------------------------------------------------------
462 ; Notes:
463 ; 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.
464 ;
465 ; 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
466 ; 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.
467 ; 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
468 ; If MAME has a problem reading the bios zips, try archving them with "no compression"
469 ; This site can help a ton with details for the various systems supported: http://www.progettoemma.net/mess/index.html
470 ; 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.
471 ; 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
472 ;
473 ; Command Line Options - http://easyemu.mameworld.info/mameguide/mameguide-options.html
474 ; High Scores DO NOT SAVE when cheats are enabled!
475 ; HLSL Documentation: http://mamedev.org/source/docs/hlsl.txt.html
476 ; 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
477 ;
478 ; 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
479 ; roms path for that system. If you have doubts about their filenames check the mTypeVar module variable content.
480 ;
481 ; Following systems will also require some specific files to operate properly:
482 ; APF Imagination Machine - apfimag (tape games), apfm1000 (cart games)
483 ; Camputers Lynx - lynx64k, lynx96k, lynx128k
484 ; Coleco ADAM - adam, adam_ddp, adam_fdc, adam_kb, adam_prn, adam_spi
485 ; NEC PC Engine-CD - "Super CD-ROM2 System V3.0 (J).pce" [262,656 bytes] (placed in the roms subfolder in the emuPath)
486 ; NEC TurboGrafx-CD - "Super CD-ROM2 System V3.01 (U).pce" [262,144 bytes] (placed in the roms subfolder in the emuPath)
487 ; Sega CD - segacd, megacd, megacd2j (megacd2j seems to be more compatible over megacdj)
488 ; Sony PlayStation - psa, pse, psj, psu
489 ;
490 ; Tape Control:
491 ; 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.
492 ; 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.
493 ; The following hotkeys can also be used:
494 ; F2 - Start Tape
495 ; Left Shift + F2 - Stop Tape
496 ; Insert - While held, runs the game with throttling disabled and with the maximum frameskip. Useful to speedup the long tape loading process.
497 ;
498 ; 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
499 ; hotkeys. To disable it press the Scroll Lock key, press it again to enable it back.
500 ;
501 ; 7z Support:
502 ; 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
503 ; fine to enable 7z to non-arcade systems.
504 ;
505 ; Custom Configuration Files:
506 ; 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:
507 ; cfg\mame_system_name\database_rom_name\mame_system_name.cfg
508 ; An example of a game that requires specific settings is ICBM Attack for the Bally Astrocade, in this case special cfg file should be:
509 ; cfg\astrocde\I.C.B.M. Attack (USA) (Unl)\astrocde.cfg
510 ;
511 ; Ini Files:
512 ; 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
513 ; those. MAME supports a hierarchical ini file structure and will load settings from several ini files following a specific order:
514 ;- mame.ini
515 ;- <mymame>.ini (i.e. if MAME was renamed mame060.exe, MAME parses mame060.ini here)
516 ;- debug.ini (if the debugger is enabled)
517 ;- <parent>.ini (for clones only, may be called recursively)
518 ;- <gamename>.ini
519 ;- vertical.ini (for games with vertical monitor orientation)
520 ;- horizont.ini (for games with horizontal monitor orientation)
521 ;- vector.ini (for vector games only)
522 ;- <driver>.ini (based on the source filename of the driver)
523 ;
524 ; The settings in the later ini's override those in the earlier ini's.
525 ;
526 ; It's highly recommended that you set skipchecks to 'Rom Only" for MAME otherwise RocketLauncher won't be able to launch several games due
527 ; to the way MAME roms are packaged. This will be even more noticeable for those using merged sets.
528 ;
529 ; Bally Astrocade:
530 ; 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
531 ; 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.
532 ; 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.
533 ;
534 ; GCE Vectrex:
535 ; Requires a vectrex.lay and a png overlay for each game. These all need to be placed in the MAME\artwork\vectrex folder.
536 ; 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.
537 ;
538 ; Jupiter Ace:
539 ; Set mame to 48k ram
540 ;
541 ; Magnavox Odyssey 2:
542 ; Euro games should use the videopac bios instead of the odyssey2 one or you'll get some timing issues.
543 ; Use the systemName ini file in the folder with this module for this, example:
544 ; [Moto-Crash (France)]
545 ; Bios=videopac
546 ;
547 ; RCA Studio 2:
548 ; Most of the games require you to press a button to start the game, like 1 or 2 (refer to the game's manual).
549 ; The game screen will be black until you do.
550 ;
551 ; Texas Instruments TI 99/4A:
552 ; This system requires full keyboard emulation to work properly
553 ; 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)
554 ; You can check how to convert split cart dumps to RPK here:
555 ; http://www.ninerpedia.org/index.php/MESS_multicart_system
556 ; 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"
557 ; 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
558 ; 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.
559 ;
560 ; Bezels:
561 ; Module settings control whether RocketLauncher or MAME bezels are shown
562 ; In the bezel normal mode only RocketLauncher Bezels will be show and the MAME use_bezels option will be forced disbaled
563 ; 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
564 ;
565 ; ServoStik:
566 ; The module will automatically control any connected ServoStiks found on the system.
567 ; 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.
568 ;
569 ; Per game controller types:
570 ; 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
571 ; system so to avoid adding a huge complexity to the module this must be done through the Parameters settings.
572 ; 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
573 ; 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.
574 ; This is an example for Atari 2600 for a game using wheel controllers on both joy ports:
575 ; #
576 ; # SLOT DEVICES
577 ; #
578 ; joyport1 wheel
579 ; joyport2 wheel
580 ; 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
581 ; set Parameters=-joyport1 joy -joyport2 joy
582 ; 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
583 ; Parameters=-joyport1 wheel -joyport2 wheel
584 ;
585 ; Another option is to set the default values in the MAME ini file and make sure you also set writeconfig to 0.
586 ; 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,
587 ; ensure you set your controls in the main MAME config file (MAME.ini), not the system one (ex. Atari 2600.ini).
588 ;
589 ; Linking/NetPlay:
590 ; The module will automatically set correct network ports for linked games.
591 ; Up to 8 players on the same PC are supported. Multiple copies of MAME will be launched.
592 ; 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.
593 ; Each player will use a different cfg and nvram folder in your MAME folder. Player 1 will always use .\cfg and .\nvram.
594 ; Players 2 through 8 will use .\cfg2, .\cfg3, etc and .\nvram2, .\nvram3, etc
595 ; These folders and cfg/nvram files will be automatically created for you on launch so you do not need to create them manually.
596 ; 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.
597 ; 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.
598 ; 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.
599 ; There are other network related settings in the module settings to assist with starting IPs and connectivity, so check them out as well.
600 ;
601 ; NVRAM Automation for linked games:
602 ; When launching linked games on the same pc NVRAM settings are automatically set for you so each player will be unique.
603 ; For instance, in Virtua Racing, Player 1 is red, player 2 is blue, player 3 is yellow, etc.
604 ; To do this, some other options are also set automatically for you as well, like region, difficulty, countr, course, etc
605 ; 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.
606 ;
607 ; Additional Link info that may be of some importance:
608 ; The original Model-1 has a max Bandwidth of 6 MBit/s (TOTX173/TORX173).
609 ; One Board sends about 20 KByte/s.
610 ; So bandwidth CLIENTSIDE is like...
611 ; 2 Boards - 20 KByte/s inbound and 20 KByte/s outbound.
612 ; 3 Boards - 40 KByte/s inbound and 20 KByte/s outbound.
613 ; 4 Boards - 60 KByte/s inbound and 20 KByte/s outbound.
614 ; etc.
615 ; Some good info on Linking: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=297577&page=0
616 ; also http://forum.arcadecontrols.com/index.php/topic,130136.msg1331485.html
617 ;----------------------------------------------------------------------------
618 StartModule()
619 BezelGUI()
620
621 dialogOpen := i18n("dialog.open") ; Looking up local translation
622 primaryExe := new Emulator(emuPath . "\" . executable) ; instantiate emulator executable object
623 emuPrimaryWindow := new Window(new WindowTitle("","MAME")) ; instantiate primary emulator window object
624 emuOpenWindow := new Window(new WindowTitle(dialogOpen,"ConsoleWindowClass"))
625 emuConsoleWindow := new Window(new WindowTitle("","ConsoleWindowClass"))
626 emuDebugWindow := new Window(new WindowTitle("","MAMEDebugWindow"))
627 emuOutputWindow := new Window(new WindowTitle("","MAMEOutput"))
628
629 ; 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.
630 mTypeVar := "
631 ( LTrim
632 Aamber Pegasus|pegasus
633 Acorn Electron|electron
634 Amstrad CPC|cpc664
635 Amstrad GX4000|gx4000
636 APF Imagination Machine|apfimag
637 Apple II|apple2ep
638 Apple IIGS|apple2gs
639 Applied Technology MicroBee|mbeeic
640 Atari 8-Bit|a800
641 Atari 2600|a2600
642 Atari 5200|a5200
643 Atari 7800|a7800
644 Atari Jaguar|jaguar
645 Atari Lynx|lynx
646 Bally Astrocade|astrocde
647 Bandai Super Vision 8000|sv8000
648 Bandai WonderSwan|wswan
649 Bandai WonderSwan Color|wscolor
650 Bit Corporation Gamate|gamate
651 Camputers Lynx|lynx128k
652 Casio PV-1000|pv1000
653 Casio PV-2000|pv2000
654 Coleco ADAM|adam
655 ColecoVision|coleco
656 Commodore 64|c64
657 Commodore MAX Machine|vic10
658 Creatronic Mega Duck|megaduck
659 EACA EG2000 Colour Genie|cgenie
660 Emerson Arcadia 2001|arcadia
661 Entex Adventure Vision|advision
662 Epoch Game Pocket Computer|gamepock
663 Epoch Super Cassette Vision|scv
664 Exidy Sorcerer|sorcerer
665 Fairchild Channel F|channelf
666 Fujitsu FM-7|fmnew7
667 Funtech Super Acan|supracan
668 GamePark 32|gp32
669 GCE Vectrex|vectrex
670 Hartung Game Master|gmaster
671 Interton VC 4000|vc4000
672 JungleTac Sport Vii|vii
673 Jupiter Ace|jupace
674 Magnavox Odyssey 2|odyssey2
675 Matra & Hachette Alice|alice32
676 Mattel Aquarius|aquarius
677 Mattel Intellivision|intv
678 MGT Sam Coupe|samcoupe
679 Milton Bradley MicroVision|microvsn
680 NEC PC-8801|pc8801
681 NEC PC Engine|pce
682 NEC PC Engine-CD|pce
683 NEC SuperGrafx|sgx
684 NEC TurboGrafx-16|tg16
685 NEC TurboGrafx-CD|tg16
686 Nintendo 64|n64
687 Nintendo 64DD|n64dd
688 Nintendo Entertainment System|nes
689 Nintendo Famicom|famicom
690 Nintendo Famicom Disk System|fds
691 Nintendo Game Boy|gameboy
692 Nintendo Game Boy Advance|gba
693 Nintendo Game Boy Color|gbcolor
694 Nintendo Pokemon Mini|pokemini
695 Nintendo Satellaview|snes
696 Nintendo Super Famicom|snes
697 Nintendo Super Game Boy|supergb
698 Nintendo Virtual Boy|vboy
699 Othello Multivision|omv1000
700 Philips CD-i|cdimono1
701 Philips Videopac Plus G7400|g7400
702 Philips VG 5000|vg5k
703 RCA Studio II|studio2
704 Sega 32X|32x
705 Sega CD|segacd
706 Sega Game Gear|gamegear
707 Sega Genesis|genesis
708 Sega Master System|sms
709 Sega Mega Drive|megadriv
710 Sega Pico|pico
711 Sega Saturn|saturn
712 Sega SC-3000|sc3000
713 Sega SG-1000|sg1000
714 Sega VMU|svmu
715 Sharp X1|x1turbo40
716 Sinclair ZX81|zx81
717 SNK Neo Geo AES|aes
718 SNK Neo Geo CD|neocdz
719 SNK Neo Geo Pocket|ngp
720 SNK Neo Geo Pocket Color|ngpc
721 Sony PlayStation|psx
722 Sony PocketStation|pockstat
723 Sord M5|m5
724 Soundic Victory MPT-02|mpt02
725 Super Nintendo Entertainment System|snes
726 Tandy TRS-80 Color Computer|coco3
727 Texas Instruments TI 99-4A|ti99_4a
728 Tiger Game.com|gamecom
729 Tomy Tutor|tutor
730 VTech CreatiVision|crvision
731 Watara Supervision|svision
732 )"
733 mType := Object()
734 Loop, Parse, mTypeVar, `n, `r
735 {
736 obj := {}
737 Loop, Parse, A_LoopField, |
738 If (A_Index = 1)
739 obj.System := A_LoopField
740 Else ; 2
741 obj.mameID := A_LoopField
742 mType.Insert(obj["System"], obj)
743 }
744 RLLog.Debug("Module - Finished building the " . MEmu . " object")
745 ; For easier use throughout the module
746 mameSystem := mType[systemName].System
747 mameID := mType[systemName].mameID
748
749 If !mameSystem {
750 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.")
751 mameSystem := systemName
752 mameID := "MAME"
753 }
754
755 Fullscreen := moduleIni.Read("Settings", "Fullscreen","true","",1) ; Set fullscreen mode
756 legacyMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "LegacyMode","false","",1)
757 mameBiosPath := moduleIni.Read("Settings", "MAME_BIOS_Path", emuPath . "\roms","",1)
758 Videomode := moduleIni.Read("Settings", "Videomode","d3d","",1) ; Choices are gdi,ddraw,d3d. If left blank, MAME uses d3d by default
759 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
760 bilinearFilter := moduleIni.Read(mameSystem . "|Settings", "BilinearFilter","false","",1)
761 hlsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "HLSL","false","",1)
762 glsl := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "GLSL","false","",1)
763 bezelMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "BezelMode","layout","",1) ; "layout" or "normal"
764 verticalRotationMode := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "VerticalRotationMode","none","",1)
765 cheatMode := moduleIni.Read("Settings", "CheatMode","false","",1)
766 cheatModeKey := moduleIni.Read("Settings", "CheatModeKey","","",1) ; user defined key to be held down before launching a mame rom.
767 UseSoftwareList := moduleIni.Read(romName . "|" . mameSystem, "UseSoftwareList","false","",1)
768 sysStaticParams := moduleIni.Read(mameSystem, "StaticParameters", "","",1)
769 sysParams := moduleIni.Read(mameSystem, "Parameters", "","",1)
770 romParams := moduleIni.Read(romName, "Parameters", sysParams,"",1)
771 mameRomName := moduleIni.Read(romName, "MameRomName", "","",1)
772 autosave := moduleIni.Read(romName . "|" . mameSystem, "Autosave", "false","",1)
773 volume := moduleIni.Read(romName . "|" . mameSystem . "|Settings", "Volume","","",1)
774 Artwork_Crop := moduleIni.Read(romName . "|" . mameSystem, "Artwork_Crop", "true","",1)
775 Use_Bezels := moduleIni.Read(romName . "|" . mameSystem, "Use_Bezels", "false","",1)
776 Use_Overlays := moduleIni.Read(romName . "|" . mameSystem, "Use_Overlays", "true","",1)
777 Use_Backdrops := moduleIni.Read(romName . "|" . mameSystem, "Use_Backdrops", "true","",1)
778 Use_Cpanels := moduleIni.Read(romName . "|" . mameSystem, "Use_Cpanels", "false","",1)
779 Use_Marquees := moduleIni.Read(romName . "|" . mameSystem, "Use_Marquees", "false","",1)
780 inipath := moduleIni.Read(mameSystem, "IniPath", "","",1)
781 hashpath := moduleIni.Read(mameSystem, "HashPath", "","",1)
782 UseControllerRemap := moduleIni.Read(mameSystem . "|Settings", "UseControllerRemap", "true","",1)
783 ControllerRemapPath := moduleIni.Read(mameSystem . "|Settings", "ControllerRemapPath", emuPath . "\ControllerRemap\ControllerRemap.exe","",1)
784 CtrlRemapFile := new File(ControllerRemapPath)
785 ControllerRemapConfigPath := moduleIni.Read( mameSystem . "|Settings", "ControllerRemapConfigPath", CtrlRemapFile.FilePath . "\ctrlr\","",1)
786 MAMECtrlrPath := moduleIni.Read(mameSystem . "|Settings", "MAMECtrlrPath", emuPath . "\ctrlr","",1)
787
788 mameBiosPath := GetFullName(mameBiosPath)
789
790 ; Loop, 8
791 ; car%A_Index%Color := moduleIni.Read(romName, "Car_" . A_Index . "_Color","","",1)
792
793 enableLinkPlay := moduleIni.Read(romName . "|Link/Network", "Enable_Link_Play", "false","",1)
794 networkSession := ""
795 If (enableLinkPlay != "false") {
796 RLLog.Info("Module - Link/Network Multi-Player is an available option for " . romName)
797 getWANIP := moduleIni.Read("Link/Network", "Get_WAN_IP","false","",1)
798 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
799 networkPlayers := enableLinkPlay ; Max amount of networkable players
800 localLink := 1 ; Tell Multiplayer menu to enable menu option for local linking
801
802 enableNVRAMAutomation := moduleIni.Read(romName . "|Link/Network", "Enable_NVRAM_Automation","true","",1)
803 maxPlayersPerMonitor := moduleIni.Read(romName . "|Link/Network", "Max_Players_Per_monitor","1|1|1|1|1|1|1|1","",1)
804 splitScreen2PlayersMode := moduleIni.Read(romName . "|Link/Network", "SplitScreen_2_Players","Horizontal","",1) ;horizontal or vertical
805 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.
806 localPort := moduleIni.Read("Link/Network", "Local_Port","15111","",1)
807
808 defaultServerIP := moduleIni.Read("Link/Network", "Default_Server_IP", myIP,"",1)
809 defaultServerPort := moduleIni.Read("Link/Network", "Default_Server_Port","15111","",1)
810 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
811 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
812
813 MultiplayerMenu(lastIP, lastPort, networkType, networkPlayers,,,,,,localLink,"ipAndPort")
814
815 ;MultiPlayer Menu Result
816 ; If !(networkType)
817 ; MsgBox, % "Single Player Game"
818 ; Else If (networkType="localLink")
819 ; MsgBox, % "Local Link selected with the number of players equal to: " . networkPlayers
820 ; Else If (networkType="server")
821 ; MsgBox, % "WAN IP Address=" . networkIP . " | LAN IP Address=" . localIP[1,2] . " | Port=" . networkPort . " | networkPlayers=" . networkPlayers . " | networkRequiresSetup=" . networkRequiresSetup
822 ; Else If (networkType="client")
823 ; MsgBox, % "NetworkIP=" . networkIP . " | Port Number=" . networkPort . " | networkRequiresSetup=" . networkRequiresSetup
824
825 If networkSession {
826 RLLog.Info("Module - Using a Network for " . romName)
827 multiPlayerObj := Object() ; initialize object to store the multiplayer options
828 If (networkType="localLink") {
829 RLLog.Info("Module - Setting remote host to 127.0.0.1 to support local link mode as it is running on this PC.")
830 linkEnabledGame := 1
831 If networkPlayers > 1
832 { RLLog.Info("Module - Local link mode was selected and " . networkPlayers . " sessions will be launched.")
833 fullscreen := "false" ; must turn off fullscreen if running multiple MAMEs on the same machine
834 Loop % networkPlayers {
835 multiPlayerObj[A_Index,"Player"] := A_Index
836 multiPlayerObj[A_Index,"CfgDir"] := " -cfg_directory cfg" . (If A_Index = 1 ? "" : A_Index)
837 multiPlayerObj[A_Index,"NvramDir"] := " -nvram_directory nvram" . (If A_Index = 1 ? "" : A_Index)
838 If (A_Index = 1) { ; Player 1
839 initialLocalPort := localPort ; must be stored for last player
840 multiPlayerObj[A_Index,"LocalHost"] := " -comm_localhost 0.0.0.0"
841 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
842 localPort++
843 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . localPort
844 } Else { ; Players 2+
845 multiPlayerObj[A_Index,"LocalPort"] := " -comm_localport " . localPort
846 localPort++
847 multiPlayerObj[A_Index,"RemoteHost"] := " -comm_remotehost 127.0.0.1"
848 multiPlayerObj[A_Index,"RemotePort"] := " -comm_remoteport " . (If A_Index = networkPlayers ? initialLocalPort : localPort) ; must set remote port to first port on last player
849 }
850
851 ; 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"]
852 }
853 } Else
854 RLLog.Info("Module - Local link mode was selected but user only chose 1 player. Launch will be a normal session.")
855 } Else If (networkType = "client") {
856 RLLog.Info("Module - Remote host is running on another PC, module will use remote link mode.")
857 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
858 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
859 linkType := "Slave"
860 networkPlayers := 1
861 multiPlayerObj[1,"Player"] := 1
862 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
863 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
864 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
865 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . localPort
866 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
867 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
868 } Else { ; server
869 RLLog.Info("Module - This PC is acting as the host, telling mame to listen for incoming connections on port: " . localPort)
870 moduleIni.Write(networkIP,"GlobalModuleIni","Link/Network","Last_IP") ; Save last used IP and Port for quicker launching next time
871 moduleIni.Write(networkPort,"GlobalModuleIni","Link/Network","Last_Port")
872 linkType := "Master"
873 networkPlayers := 1
874 multiPlayerObj[1,"Player"] := 1
875 multiPlayerObj[1,"CfgDir"] := " -cfg_directory cfg"
876 multiPlayerObj[1,"NvramDir"] := " -nvram_directory nvram"
877 multiPlayerObj[1,"LocalHost"] := " -comm_localhost 0.0.0.0" ; don't really need to set this but just in case
878 multiPlayerObj[1,"LocalPort"] := " -comm_localport " . networkPort
879 multiPlayerObj[1,"RemoteHost"] := " -comm_remotehost " . networkIP
880 multiPlayerObj[1,"RemotePort"] := " -comm_remoteport " . networkPort
881 }
882 RLLog.Info("Module - Starting a network session using the IP """ . networkIP . """ and PORT """ . networkPort . """")
883 } Else {
884 RLLog.Info("Module - User chose Single Player mode for this session")
885 }
886 }
887
888 FadeInStart()
889
890 If inipath
891 inipath := AbsoluteFromRelative(EmuPath, inipath)
892 If hashpath
893 hashpath := AbsoluteFromRelative(EmuPath, hashpath)
894
895 artworkCrop := If (Artwork_Crop = "true") ? " -artwork_crop" : " -noartwork_crop"
896 useBezels := If (Use_Bezels = "true") ? " -use_bezels" : " -nouse_bezels"
897 useOverlays := If (Use_Overlays = "true") ? " -use_overlays" : " -nouse_overlays"
898 useBackdrops := If (Use_Backdrops = "true") ? " -use_backdrops" : " -nouse_backdrops"
899 useCpanels := If (Use_Cpanels = "true") ? " -use_cpanels" : " -nouse_cpanels"
900 useMarquees := If (Use_Marquees = "true") ? " -use_marquees" : " -nouse_marquees"
901 autosave := If autosave = "true" ? " -autosave" : ""
902 volume := If volume != "" ? " -volume " . volume : ""
903 inipath := If inipath != "" ? " -inipath """ . inipath . """" : ""
904 hashpath := If hashpath != "" ? " -hashpath """ . hashpath . """" : ""
905
906 If (verticalRotationMode = "none")
907 verticalRotationMode := ""
908
909 ; Process mame's ListXML for certain features
910 If (bezelEnabled = "true" || servoStikEnabled = "auto" || verticalRotationMode || UseControllerRemap = "true") {
911 ListXMLObject := Object()
912 ListXMLObject := ListXMLInfo(If mameRomName ? mameRomName : romName)
913
914 Angle := ListXMLObject["Angle"].Value
915 If (bezelEnabled = "true") {
916 If (networkPlayers > 1) {
917 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
918 BezelStart(networkPlayers)
919 } Else {
920 If (bezelMode = "layout"){
921 BezelStart("layout",ListXMLObject["Parent"].Value,Angle,romName)
922 } Else { ;bezel mode = normal
923 useBezels := " -nouse_bezels" ; force disabling MAME built-in bezels
924 BezelStart(,,Angle)
925 }
926 }
927 }
928 If (servoStikEnabled = "auto") {
929 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
930 }
931 If (verticalRotationMode && Angle) {
932 RLLog.Info("Setting rotation mode to " . verticalRotationMode . " - Game's angle is " . Angle)
933 If (verticalRotationMode = "original")
934 verticalRotationMode := " -norotate"
935 Else If (verticalRotationMode = "right")
936 verticalRotationMode := " -ror"
937 Else If (verticalRotationMode = "left")
938 verticalRotationMode := " -rol"
939 Else
940 verticalRotationMode := ""
941 }
942 Else
943 verticalRotationMode := ""
944
945 ;Controller Remap
946 If (UseControllerRemap = "true") {
947 RLLog.Info("Controller Remap: Start")
948 romProfileName := (mameRomName ? mameRomName : romName)
949 romParentName := ListXMLObject["Parent"].Value
950
951 If ControllerRemapPath
952 ControllerRemapPath := AbsoluteFromRelative("", ControllerRemapPath)
953 If ControllerRemapConfigPath
954 ControllerRemapConfigPath := AbsoluteFromRelative("", ControllerRemapConfigPath)
955 If MAMECtrlrPath
956 MAMECtrlrPath := AbsoluteFromRelative(emuPath, MAMECtrlrPath)
957
958 ctrlrPath := ""
959 RLLog.Info("Controller Remap: ControllerRemapConfigPath: " . ControllerRemapConfigPath)
960
961 ;~ ;1- Check for Rom. 2- Check for Rom Parent. 3- Check for System default
962 If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")) {
963 RLLog.Info("Controller Remap: Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
964 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romProfileName . ".cfg")
965 }
966 else if (romParentName and FileExist(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")) {
967 RLLog.Info("Controller Remap: Parent Rom Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
968 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\" . romParentName . ".cfg")
969 }
970 else If (FileExist(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")) {
971 RLLog.Info("Controller Remap: System Config File Found: " . ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
972 ctrlrPath := new File(ControllerRemapConfigPath . "\" . systemName . "\_Default.cfg")
973 }
974 else If (FileExist(ControllerRemapConfigPath . "\_Default.cfg")) {
975 RLLog.Info("Controller Remap: Global Config File Found: " . ControllerRemapConfigPath . "\_Default.cfg")
976 ctrlrPath := new File(ControllerRemapConfigPath . "\_Default.cfg")
977 }
978
979 ; Is there a controller file?
980 if (ctrlrPath) {
981 ctrlrFile := " -ctrlr RocketLauncher"
982
983 ;Replace <system name="default"> with the Right mameID in the RocketLauncher.cfg file
984 if(mameID != "MAME") {
985 ctrlrPath.Read()
986 rocketLauncherCfgFile := new File(MAMECtrlrPath . "\RocketLauncher.cfg")
987 rocketLauncherCfgFile.Delete()
988 rocketLauncherCfgFile.Append(StringUtils.Replace(ctrlrPath.Text, "<system name=""default"">", "<system name=""" . mameID . """>"))
989 }
990 else {
991 ctrlrPath.Copy(MAMECtrlrPath . "\RocketLauncher.cfg",1)
992 }
993
994 RLLog.Info("Controller Remap: Running """ . ControllerRemapPath . """ /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""")
995 ControllerRemapProcess := new Process(ControllerRemapPath)
996 ControllerRemapProcess.Run(" /remap:""" . MAMECtrlrPath . "\RocketLauncher.cfg""","Hide")
997 }
998 else {
999 RLLog.Info("Controller Remap: No Controller config file found.")
1000 }
1001 RLLog.Info("Controller Remap: End")
1002 }
1003 }
1004
1005 winstate := If (Fullscreen = "true") ? "Hide UseErrorLevel" : "UseErrorLevel"
1006 fullscreenParam := If (Fullscreen = "true") ? " -nowindow" : " -window"
1007
1008 hideEmuObj := Object(emuOpenWindow,0,emuDebugWindow,0,emuOutputWindow,0,emuPrimaryWindow,1)
1009 7z(romPath, romName, romExtension, sevenZExtractPath)
1010
1011 ; Get MAME version from executable, this is needed since some CLI switches are not available in older MAME versions
1012 exeAtrib := FileGetVersionInfo_AW(emuPath . "\" . executable, "FileVersion|ProductVersion", "|")
1013 Loop, Parse, exeAtrib, |%A_Tab%, %A_Space%
1014 A_Index & 1 ? ( _ := A_LoopField ) : ( %_% := A_LoopField )
1015 If ProductVersion
1016 MAMEVersion := StringUtils.Right(ProductVersion, StringUtils.StringLength(ProductVersion) - 2)
1017 RLLog.Info("Module - Detected MAME Product Version from '" . EmuPath . "\" . executable . "' is " . MAMEVersion)
1018
1019 If (videomode = "opengl") {
1020 hlsl := " -nohlsl_enable"
1021 If (MAMEVersion > 159)
1022 glsl := If glsl = "true" ? " -gl_glsl" : (If glsl = "ini" ? "" : " -nogl_glsl")
1023 Else
1024 glsl := ""
1025 } Else {
1026 hlsl := If hlsl = "true" ? " -hlsl_enable" : (If hlsl = "ini" ? "" : " -nohlsl_enable")
1027 If (MAMEVersion > 159)
1028 glsl := If videomode = "ini" ? "" : " -nogl_glsl"
1029 Else
1030 glsl := ""
1031
1032 If (videomode = "ini")
1033 videomode := ""
1034 }
1035 videomode := If (Videomode != "" ) ? " -video " . videomode : ""
1036
1037 param1 := " -cart """ . romPath . "\" . romName . romExtension . """" ; default param1 used for launching most systems.
1038 If (romExtension = ".txt") ; This can be applied to all systems
1039 param1 := ""
1040
1041 If (mameID = "apfimag") ; APF Imagination Machine
1042 If (romExtension != ".tap")
1043 mameID := "apfm1000" ; cart games for APF Imagination Machine require a different bios to be loaded
1044
1045 If (UseSoftwareList != "true")
1046 { ; 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.
1047 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
1048 {
1049 If !SystemModuleIni.Exist()
1050 SystemModuleIni.Append() ; create a blank file if it does not exist
1051
1052 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1053 {
1054 ExpansionCartLocation := moduleIni.Read("Settings", "ExpansionCartLocation", romPathOrig . "\System","",1)
1055 ExpansionCartLocation := GetFullName(ExpansionCartLocation)
1056 CommandWaitOffset := moduleIni.Read("Settings", "CommandWaitOffset", 0,"",1)
1057
1058 ExpansionCart := moduleIni.Read(romName, "Expansion_Cart","extended_basic.rpk","",1) ; user can specify a rom specific cart instead of the default basic one
1059 Command := moduleIni.Read(romName, "Command", "","",1)
1060
1061 ; Now set the parameters to send to MAME
1062 If (romExtension = ".dsk") ; Expansion Disk
1063 {
1064 ; 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
1065 param1 := " -nat -gromport single -cart1"
1066 param2 := " """ . ExpansionCartLocation . "\" . ExpansionCart . """"
1067 param3 := " -peb:slot2 32kmem -peb:slot3 speech -peb:slot6 tirs232 -peb:slot8 hfdc"
1068 param4 := " -flop1"
1069 param5 := " """ . romPath . "\" . romName . romExtension . """"
1070 If StringUtils.Contains(romName, "\(Disk")
1071 {
1072 TimerUtils.Sleep(50)
1073 If (romTable.MaxIndex() = 2)
1074 {
1075 param4 := " -flop1 " . " """ . romTable[1,1] . """"
1076 param5 := " -flop2 " . " """ . romTable[2,1] . """"
1077 }
1078 }
1079 } Else If (romExtension = ".rpk") ; Cart Game (RPK Format)
1080 param1 := " -nat -gromport single -cart1", param2:=" """ . romPath . "\" . romName . romExtension . """", param3:=" -peb:slot3 speech" ;-cart will also work here
1081 param6 := " -ui_active" ;Enable partial keyboard mode at startup
1082 } Else If (mameID = "aes") ; SNK Neo Geo AES
1083 { biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1084 param1 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1085 param2 := " -cart " . romName
1086 }Else If (mameID = "apple2gs") ; Apple IIGS
1087 { externalOS := moduleIni.Read(romName, "External_OS","false","",1)
1088 2gsSystemFile := "System6.2mg" ;For games without OS included, always force this name and error out if not found
1089 multipartTable := CreateRomTable(multipartTable)
1090
1091 If (externalOS = "true")
1092 { CheckFile(romPath . "\" . 2gsSystemFile)
1093 param1 := " -flop3", param2:=" """ . romPath . "\" . 2gsSystemFile . """", param3:=" -flop4", param4:=" """ . romPath . "\" . romName . romExtension . """"
1094 } Else {
1095 param1 := " -flop3", param2:=" """ . romPath . "\" . romName . romExtension . """"
1096 If (multipartTable.MaxIndex() > 1)
1097 param3 := " -flop4", param4 := " """ . multipartTable[2,1] . """"
1098 }
1099 param5 := " -ui_active" ;Enable partial keyboard mode at startup
1100 }Else If (mameID = "electron") ; Acorn Electron
1101 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1102 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1103 If (romExtension = ".bin")
1104 mediaDeviceType := "cart"
1105 Else ; any other format
1106 mediaDeviceType := "cass"
1107 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1108 }Else If (mameID = "sc3000") ; Sega SC-3000
1109 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1110 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1111 If StringUtils.Contains(romExtension,"\.bin|\.sg\|.sc")
1112 mediaDeviceType := "cart"
1113 Else ; any other format
1114 mediaDeviceType := "cass"
1115 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1116 }Else If (mameID = "c64") ; Commodore 64
1117 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1118 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1119 If StringUtils.Contains(romExtension,"\.d64|\.g64|\.g41|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1120 mediaDeviceType := "flop1"
1121 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1122 mediaDeviceType := "cass1"
1123 Else If StringUtils.Contains(romExtension,"\.80|\.a0|\.e0|\.crt")
1124 mediaDeviceType := "cart1"
1125 Else If StringUtils.Contains(romExtension,"\.p00|\.prg|\.t64")
1126 mediaDeviceType := "quik1"
1127 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""chain""""""""""""\n""" . AutoBootDelay . ""
1128 }Else If mameID = mbeeic ; Applied Technology MicroBee
1129 { microbeeModel := moduleIni.Read(romName, "MicroBee_Model","mbeeic","",1)
1130 If !StringUtils.Contains(microbeeModel,"mbee|mbeeic|mbeepc|mbeepc85|mbee56")
1131 ScriptError("This is not a known MicroBee model value: " . microbeeModel)
1132 Else If (microbeeModel != "mbeeic")
1133 mameID := microbeeModel
1134 If StringUtils.Contains(romExtension,"\.mwb|\.com|\.bee")
1135 mediaDeviceType := "quik1"
1136 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1137 mediaDeviceType := "cass"
1138 Else If StringUtils.Contains(romExtension,"\.rom")
1139 mediaDeviceType := "cart"
1140 Else If StringUtils.Contains(romExtension,"\.dsk")
1141 mediaDeviceType := "flop1"
1142 Else ; .bin format
1143 mediaDeviceType := "quik2"
1144 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """"
1145 }Else If (mameID = "odyssey2") ; Magnavox Odyssey 2
1146 { param2 := " -ui_active" ;Enable partial keyboard mode at startup
1147 If romName not contains (USA
1148 mameID := "videopac"
1149 }Else If (mameID = "astrocde") ; Bally Astrocade
1150 {
1151 BlueRAMBasicRom := moduleIni.Read("Settings", "BlueRAMBasicRom","Blue RAM Basic v1.1 (USA).bin","",1) ; Blue RAM Basic rom
1152 RequiresReset := moduleIni.Read(romname, "RequiresReset","false","",1) ; Check if game requires a reset
1153
1154 BlueRAMBasicRomPath := new File(romPath . "\" . BlueRAMBasicRom)
1155 If (romExtension = ".script") {
1156 ; Will require blue ram basic
1157 If !BlueRAMBasicRomPath.Exist() {
1158 ; 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
1159 StringUtils.SplitPath(romPath,"",romBasePath) ; grab path one level up
1160 BlueRAMBasicRomPath.__Delete()
1161 BlueRAMBasicRomPath := new File(romBasePath . "\" . BlueRAMBasicRom)
1162 BlueRAMBasicRomPath.CheckFile("Couldn't find " . BlueRAMBasicRom . " on any of these paths:" . romBasePath . "|" . romPath)
1163 }
1164
1165 ScriptFile := new File(romPath . "\" . romName . romExtension)
1166 param1 := " -cart """ . BlueRAMBasicRomPath.FileFullPath . """"
1167
1168 ; Replace rompath variable in script
1169 ScriptFile.Read()
1170 ScriptFile.Text := StringUtils.Replace(ScriptFile.Text, "{romPath}", romPath, "all")
1171
1172 ; Create cmd file to send to MESS
1173 RomCMDFile := new File(romPath . "\" . romName . ".cmd")
1174 RomCMDFile.Delete()
1175 RomCMDFile.Append(ScriptFile.Text)
1176 param2 := " -exp blue_ram_16k -debug -debugscript """ . RomCMDFile.FileFullPath . """"
1177
1178 closeDebugWindow := "true"
1179 }
1180 }Else If (mameID = "samcoupe") ; MGT Sam Coupe
1181 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1182 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1183
1184 If StringUtils.Contains(romExtension,"\.mgt|\.dsk|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1185 mediaDeviceType := "flop1"
1186 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""\nBOOT\n""" . AutoBootDelay . ""
1187 }Else If (mameID = "vic10") ; Commodore MAX Machine
1188 { AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1189 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1190
1191 If StringUtils.Contains(romExtension,"\.e0|\.80")
1192 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1193 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1194 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1195 Else If StringUtils.Contains(romExtension,"\.t64|\.prg|\.p00")
1196 {
1197 mediaDeviceType := "quik"
1198 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """ -autoboot_command ""RUN""" . AutoBootDelay . ""
1199 }
1200 }Else If (mameID = "cpc664") ; Amstrad CPC
1201 { LaunchProgram := moduleIni.Read(romName, "LaunchProgram","disk","",1) ; Read command from config.
1202 LaunchProgram := " -autoboot_command " . """RUN \""" . LaunchProgram . "\n"""
1203 AutoBootDelay := moduleIni.Read("Settings", "AutoBootDelay","2","",1) ; Read delay from config.
1204 AutoBootDelay := " -autoboot_delay " . AutoBootDelay
1205
1206 If StringUtils.Contains(romExtension,"\.d77|\.d88|\.1dd|\.dfi|\.imd|\.ipf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi|\.dsk")
1207 mediaDeviceType := "flop1"
1208 param1 := " -" . mediaDeviceType . " """ . romPath . "\" . romName . romExtension . """" . LaunchProgram . AutoBootDelay
1209 }
1210
1211 ;Use a different bios if needed (This must be done after the above if conditions since the mameID will change)
1212 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
1213 If (iniBios != "")
1214 mameID := iniBios ; need to change the bios name for some games
1215 }
1216
1217 ; These systems don't use an ini, but do require parameters to be changed from the default method of launching MAME
1218 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
1219 { If !StringUtils.Contains(romExtension,"\.chd|\.cue")
1220 ScriptError("MAME only supports " . mameSystem . " games in chd and cue format. It does not support:`n" . romExtension)
1221 If (mameSystem = "NEC TurboGrafx-CD") { ; NEC TurboGrafx-CD needs an additional bios mounted as a cart to run
1222 ; tgcdBios := CheckFile(emuPath . "\roms\CD-ROM System V2.01 (U).pce") ; older bios that doesn't seem to work with many games
1223 tgcdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.01 (U).pce")
1224 param2 := " -cart " . """" . tgcdBios . """"
1225 } Else If (mameSystem = "NEC PC Engine-CD") { ; NEC PC Engine-CD needs an additional bios mounted as a cart to run
1226 pcecdBios := CheckFile(emuPath . "\roms\Super CD-ROM2 System V3.0 (J).pce")
1227 param2 := " -cart " . """" . pcecdBios . """"
1228 } Else If (mameID = "psx") { ; Sony PlayStation
1229 mameID := "psu" ; changing mameID sent to MAME to use the USA bios
1230 ; SelectMemCard() ; future function to swap around memcards
1231 ; Usage: mc1 "J:\MAME\software\psu\card1.mc"
1232 } If (mameSystem = "Sega CD") { ;
1233 If StringUtils.InStr(romName,"(Jap") ; Mega CD Japanese v2
1234 mameID := "megacd2j"
1235 Else If StringUtils.InStr(romName,"(Euro") ; Mega CD European (PAL)
1236 mameID := "megacd"
1237 }
1238 param1 := " -cdrm """ . romPath . "\" . romName . romExtension . """"
1239 }Else If (mameID = "gamecom") ; Tiger Game.com
1240 { If (romExtension != ".txt")
1241 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1242 }Else If (mameID = "genesis") ; Sega Genesis
1243 { If (StringUtils.InStr(romName, "(Europe") || StringUtils.InStr(romName, "(PAL")) ; if rom is from europe, tell MAME to boot a Mega Drive instead
1244 mameID := "megadriv"
1245 }Else If (mameID = "megadriv") ; Sega Mega Drive
1246 { If (StringUtils.InStr(romName, "(USA") || StringUtils.InStr(romName, "(NTSC")) ; if rom is from America, tell MAME to boot a Genesis instead
1247 mameID := "genesis"
1248 }Else If (mameID = "vii") ; JungleTac Sport Vii
1249 { If (romName = "Built-In Games (China)") ; Has some built-in games, gotta launch just BIOS for it.
1250 param1 := ""
1251 }Else If (mameID = "alice32") ; Matra & Hachette Alice
1252 { If (romExtension != ".txt")
1253 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1254 }Else If (mameID = "cgenie") ; EACA EG2000 Colour Genie
1255 { If (romExtension != ".txt")
1256 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1257 }Else If (mameID = "pockstat") ; Sony PocketStation
1258 { If (romExtension != ".gme")
1259 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1260 }Else If (mameID = "coco3") ; Tandy TRS-80 Color Computer
1261 { If (romExtension != ".txt")
1262 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1263 }Else If (mameID = "zx81") ; Sinclair ZX81
1264 { If (romExtension != ".txt")
1265 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1266 }Else If (mameID = "lynx128k") ; Camputers Lynx
1267 { If (romExtension != ".txt")
1268 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1269 }Else If (mameID = "vg5k") ; Philips VG 5000
1270 { If (romExtension != ".txt")
1271 param1 := " -cass1 """ . romPath . "\" . romName . romExtension . """"
1272 }Else If (mameID = "sorcerer") ; Exidy Sorcerer
1273 { If (romExtension = ".snp") ; Snapshot file
1274 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1275 Else If (romExtension = ".bin")
1276 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1277 }Else If (messID = "jupace") ; jupiter ace
1278 { If (romExtension = ".ace")
1279 param1 := " -dump """ . romPath . "\" . romName . romExtension . """"
1280 }Else If (mameID = "a800" || mameID = "fds") ; Atari 8-Bit, Nintendo Famicom Disk System
1281 { If (romExtension != ".txt")
1282 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1283 }Else If (mameID = "vectrex") ; GCE Vectrex
1284 { 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)
1285 param1 := ""
1286 }Else If (mameID = "apfm1000") ; APF Imagination Machine/APF M1000
1287 { If (romName = "Rocket Patrol (USA)") ; Rocket Patrol is built into the APF M1000 ROM.
1288 param1 := ""
1289 }Else If (mameID = "adam") ; Coleco ADAM
1290 param1 := (If romExtension = ".ddp" ? " -cass1" : (If romExtension = ".dsk" ? " -flop1" : " -cart1")) . " """ . romPath . "\" . romName . romExtension . """" ; Decide if tape, disk, or cart game
1291 Else If (mameID = "pegasus") ; Aamber Pegasus
1292 { If (romExtension != ".txt")
1293 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1294 }Else If (mameID = "gp32") ; GamePark 32
1295 { If (romExtension != ".txt")
1296 param1 := " -memc """ . romPath . "\" . romName . romExtension . """"
1297 }Else If (mameID = "svmu") ; Sega VMU
1298 {
1299 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1300 }Else If (mameID = "x1turbo40") ; Sharp X1
1301 { If StringUtils.Contains(romExtension,"\.bin|\.rom")
1302 param1 := " -cart """ . romPath . "\" . romName . romExtension . """"
1303 Else If StringUtils.Contains(romExtension,"\.wav|\.tap")
1304 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1305 Else
1306 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1307 }Else If (mameID = "pc8801") ; NEC PC-8801
1308 { If (romExtension = ".d88")
1309 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1310 }Else If (mameID = "fmnew7") ; Fujitsu FM-7
1311 { If StringUtils.Contains(romExtension,"\.fdi|\.td0|\.imd|\.cqm|\.dsk|\.d77|\.d88|\.1dd")
1312 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1313 Else If StringUtils.Contains(romExtension,"\.wav|\.t77")
1314 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1315 }Else If (mameID = "apple2ep") ; Apple II
1316 { If StringUtils.Contains(romExtension,"\.dsk|\.do|\.po|\.rti|\.edd|\.d77|\.d88|\.1dd|\.dfi|\.imd|\.i pf|\.mfi|\.mfm|\.td0|\.cqm|\.cqi")
1317 param1 := " -flop1 """ . romPath . "\" . romName . romExtension . """"
1318 Else If StringUtils.Contains(romExtension,"\.wav")
1319 param1 := " -cass """ . romPath . "\" . romName . romExtension . """"
1320 }Else If (mameID = "n64dd") ; Nintendo 64DD
1321 {
1322 N64RomFile := new FIle(romPath . "\" . romName . ".n64")
1323 If N64RomFile.Exist()
1324 param1 := " -cart """ . N64RomFile.FileFullPath . """ -quik """ . romPath . "\" . romName . romExtension . """"
1325 Else
1326 param1 := " -quik """ . romPath . "\" . romName . romExtension . """"
1327 }Else If StringUtils.Contains(mameID,"studio2|mpt02") ; RCA Studio 2
1328 {
1329 If (romExtension != ".txt")
1330 param1 := " -cart1 """ . romPath . "\" . romName . romExtension . """"
1331 Else {
1332 If StringUtils.Contains(romName,"Doodle")
1333 button2 := "A 1" ; Press 1 on P1 controller
1334 If StringUtils.Contains(romName,"Patterns")
1335 button2 := "A 2" ; Press 2 on P1 controller
1336 If StringUtils.Contains(romName,"Bowling")
1337 button2 := "A 3" ; Press 3 on P1 controller
1338 If StringUtils.Contains(romName,"Freeway")
1339 button2 := "A 4" ; Press 4 on P1 controller
1340 If StringUtils.Contains(romName,"Addition")
1341 button2 := "A 5" ; Press 5 on P1 controller
1342 }
1343
1344 ; Generate a lua script to press the Clear button so games will start
1345 ScriptFileName := GeneratePressButtonScript("Clear",button2)
1346 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1347 }
1348 } Else { ; Use Software List
1349 hashname := mameID
1350 param1 := " """ . romName . """" ; param1 used for launching from software lists
1351
1352 If (mameID = "aes") ; SNK Neo Geo AES
1353 { hashname := "neogeo"
1354 biosRegion := moduleIni.Read(romName, "BIOS_Region","asia","",1)
1355 param2 := " -bios " . biosRegion ; can also be japan, but the asian one has english menus for most games
1356 }
1357 CheckFile(emuPath . "\hash\" . hashname . ".xml","Could not find a software list for the system " . mameID) ;Check if software list for selected system exists
1358 }
1359
1360 If (mameID = "vectrex") { ; GCE Vectrex
1361 VectrexArtFile := new File(emuPath . "\artwork\Vectrex\" . romName . ".png")
1362 param2 := " -view " . (If VectrexArtFile.Exist() ? ("""" . romName . """") : "standard") ; need overlays extracted in the artwork\vectres folder. PNGs must match romName
1363 }
1364
1365 sysStaticParams := If sysStaticParams != "" ? A_Space . sysStaticParams : "" ; tacking on a space in case user forgot to add one
1366 romParams := If romParams != "" ? A_Space . romParams : "" ; tacking on a space in case user forgot to add one
1367
1368 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
1369 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
1370
1371 If StringUtils.InStr(romParams,"-rompath")
1372 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.")
1373 If StringUtils.InStr(sysStaticParams,"-rompath")
1374 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.")
1375
1376 ; use a custom rom name, not the one from the db
1377 If mameRomName {
1378 MameRomOriginalFile := new File(romPath . "\" . romName . romExtension)
1379 MameRomCustomFile := new File(romPath . "\" . mameRomName . romExtension)
1380 errLvl := MameRomOriginalFile.Move(MameRomCustomFile.FileFullPath) ; rename rom to match what mame needs
1381 originalRomName := romName ; store romName from database so we know what to rename it back to later
1382 romName := mameRomName
1383 If errLvl
1384 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)
1385 Else ; if rename was successful, set var so we know to move it back later
1386 fileRenamed := 1
1387 }
1388
1389 ; use a custom cfg file if it exists and append it to param1
1390 CustomCFGPath := new Folder(emuPath . "\cfg\" . mameID . "\" . dbName)
1391 If CustomCFGPath.Exist()
1392 param1 := " -cfg_directory """ . CustomCFGPath.FileFullPath . """" . param1
1393
1394 If (bilinearFilter = "true")
1395 bilinearEnabled := " -filter"
1396 Else
1397 bilinearEnabled := " -nofilter"
1398
1399 If (cheatMode = "true") {
1400 CheatZipFile := new File(emuPath . "\cheat.zip")
1401 Cheat7zFile := new File(emuPath . "\cheat.7z")
1402 If (!CheatZipFile.Exist() && !Cheat7zFile.Exist())
1403 RLLog.Warning("Module - You have cheats enabled for " . MEmu . " but could not locate a ""cheat.zip"" or ""cheat.7z"" in " . emuPath)
1404 Else {
1405 RLLog.Info("Module - Cheat file found in " . emuPath)
1406 If cheatModeKey ; if user wants to use a key to enable CheatMode
1407 cheatEnabled := If XHotkeyAllKeysPressed(cheatModeKey) ? " -cheat" : "" ; only enables cheatMode when key is held down on launch
1408 Else ; no cheat mode key defined
1409 cheatEnabled := " -cheat"
1410 }
1411 }
1412
1413 If (RequiresReset = "true")
1414 { ; Generate a lua script to send a system soft reset
1415 ScriptFileName := GenerateSoftResetScript()
1416 bootscript := " -script """ . ScriptFileName . """ -autoboot_delay 1"
1417 }
1418
1419 HideAppStart(hideEmuObj,hideEmu)
1420
1421
1422
1423 If (legacyMode = "true")
1424 { RLLog.Info("Module - Running MAME in legacy Mode")
1425 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
1426 } Else {
1427 RLLog.Info("Module - Running MAME in non-legacy mode")
1428 ; If (networkPlayers = 1 || !linkEnabledGame) {
1429 If !networkSession {
1430 RLLog.Info("Module - SinglePlayer session")
1431 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
1432 } Else { ; multiplayer game run
1433 RLLog.Info("Module - Network/MultiPlayer session")
1434 BuildNVRAMObject() ; build nvram object
1435 ;screen positions
1436 screenPos := []
1437 screenPos := SplitScreenPos(networkPlayers,splitScreen2PlayersMode,splitScreen3PlayersMode,maxPlayersPerMonitor)
1438 If (networkType="localLink")
1439 globalInputs := " -global_inputs" ; tell mame to accept inputs when its window is not focused
1440 Loop % networkPlayers
1441 {
1442 currentPlayer := A_Index
1443 ; Update NVRAM setting(s)
1444 If (enableNVRAMAutomation = "true") {
1445 If nvramSettings[romName]["Settings"]["Credit"]["Position"].MaxIndex() { ; If nvram settings exist for this game
1446 NVRamFile%currentPlayer% := new File(emuPath . "\nvram" . (If currentPlayer = 1 ? "" : currentPlayer) . "\" . romName . "\" . nvramSettings[romName]["Settings"]["NVRAM"]["File"][1])
1447 If NVRamFile%currentPlayer%.Exist() {
1448 RLLog.Info("Module - Checking nvram file(s) for required changes")
1449 If (networkType = "localLink") { ; only local link is supported for now
1450 ; Parse through each setting of each player and lookup the position to write new setting to the nvram file
1451 for playerOptionLabel, selectedPlayerOption in nvramSettings[romName]["Player"][currentPlayer] ;looping on each player selected options
1452 for index, setting in nvramSettings[romName]["Settings"][playerOptionLabel]["Position"] ;Looping through hex values of the current option
1453 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"][playerOptionLabel]["Position"][index],nvramSettings[romName]["Settings"][playerOptionLabel]["Option"][selectedPlayerOption][index])
1454 for index, playerCRC in nvramSettings[romName]["CRC"]["Player"][currentPlayer] ;looping on each player selected options
1455 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["CRC"]["Position"][index],nvramSettings[romName]["CRC"]["Player"][currentPlayer][index])
1456 } Else If (networkType = "Server") {
1457 RLLog.Info("Module - Converting this nvram to ""Master"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1458 ; 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
1459 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Master"][1])
1460 } Else If (networkType = "Client") {
1461 RLLog.Info("Module - Converting this nvram to ""Slave"" in: " . NVRamFile%currentPlayer%.FileFullPath)
1462 ; 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
1463 HexCompareWrite(NVRamFile%currentPlayer%.FileFullPath,nvramSettings[romName]["Settings"]["Link"]["Position"][1],nvramSettings[romName]["Settings"]["Link"]["Option"]["Slave"][1])
1464 }
1465 } Else
1466 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)
1467 } Else
1468 RLLog.Info("Module - This rom does not contain an entry in the NVRAM object")
1469 }
1470 ;;Run Line for each of the multiplayer MAME instances using the nvramPath and cfgPath variables to the extra mames
1471 MameMultiPlayer%currentPlayer%Exe := new Process(emuPath . "\" . executable) ; instantiate a new process for each player
1472 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
1473 MameMultiPlayer%currentPlayer%Exe.Process("Exist") ; get PID
1474 MameMultiPlayer%currentPlayer%Window := new Window(new WindowTitle("","","","",MameMultiPlayer%currentPlayer%Exe.PID))
1475 MameMultiPlayer%currentPlayer%Window.ExcludeTitle := "MAMEOutput" ; ignore the mame debug window
1476 MameMultiPlayer%currentPlayer%Window.Wait()
1477 }
1478
1479 Loop % networkPlayers
1480 {
1481 MameMultiPlayer%A_Index%Window.Get("ID")
1482 MameMultiPlayer%A_Index%Window.RemoveTitlebar()
1483 MameMultiPlayer%A_Index%Window.ToggleMenu()
1484 MameMultiPlayer%A_Index%Window.RemoveBorder()
1485 MameMultiPlayer%A_Index%Window.Move(screenPos[A_Index].X, screenPos[A_Index].Y, screenPos[A_Index].W, screenPos[A_Index].H)
1486 TimerUtils.Sleep(50)
1487 }
1488 }
1489 }
1490
1491 If errLvl {
1492 If (errLvl = 1)
1493 Error := "Failed Validity"
1494 Else If(errLvl = 2)
1495 Error := "Missing Files"
1496 Else If(errLvl = 3)
1497 Error := "Fatal Error"
1498 Else If(errLvl = 4)
1499 Error := "Device Error"
1500 Else If(errLvl = 5)
1501 Error := "Game Does Not Exist"
1502 Else If(errLvl = 6)
1503 Error := "Invalid Config"
1504 Else If StringUtils.Contains(errLvl,"7|8|9")
1505 Error := "Identification Error"
1506 Else
1507 Error := "MAME Error"
1508 RLLog.Error("MAME Error - " . Error)
1509 }
1510
1511 emuPrimaryWindow.Wait()
1512 emuPrimaryWindow.WaitActive()
1513
1514 If (mameID = "ti99_4a") ; Texas Instruments TI 99-4A
1515 {
1516 KeyUtils.SendCommand("X",1000) ; To bypass the first screen
1517 If (Command)
1518 KeyUtils.SendCommand(Command,,,,,,CommandWaitOffset) ; Send command affect it with an offset if needed
1519 }
1520
1521 ; Close the debugger window if exists
1522 If (closeDebugWindow = "true") {
1523 emuDebugWindow.Wait(2)
1524 emuDebugWindow.Close()
1525 }
1526
1527 BezelDraw()
1528 HideAppEnd(hideEmuObj,hideEmu)
1529
1530 If (networkPlayers = 1 || !linkEnabledGame) {
1531 emuPrimaryWindow.Show() ; Show the emulator
1532 } Else {
1533 Loop % networkPlayers
1534 MameMultiPlayer%A_Index%Window.Show() ; Show the emulator
1535 MameMultiPlayer1Window.Activate() ; Activate first player window so that first player can use keyboard instead of last player
1536 }
1537
1538 FadeInExit()
1539 primaryExe.Process("WaitClose")
1540 7zCleanUp()
1541 BezelExit()
1542
1543 If fileRenamed { ; Rename file back to alternate name for next launch
1544 errLvl := MameRomCustomFile.Move(MameRomOriginalFile.FileFullPath) ; Put original name back
1545 If errLvl ; If rename was successful, set var so we know to move it back later
1546 ScriptError("There was a problem renaming " . MameRomCustomFile.FileName . " back to " . MameRomOriginalFile.FileName)
1547 }
1548
1549 FadeOutExit()
1550 ExitModule()
1551
1552
1553 ListXMLInfo(rom){ ; Returns MAME info about parent rom, orientation angle, resolution
1554 Global emuFullPath,emuPath,RLLog
1555 ListXMLObject := Object()
1556 listXMLVarLog := ""
1557 ComSpecProcess := new Process(ComSpec) ; instantiate cmd.exe process
1558 ComSpecProcess.RunDirect(comspec . " /c " . """" . emuFullPath . """" . " -listxml " . rom . " > tempBezel.txt", emuPath, "Hide", 1) ; Run from emu's folder
1559 TempBezelFile := new File(emuPath . "\tempBezel.txt")
1560 TempBezelFile.Read()
1561 StringUtils.RegExMatch(TempBezelFile.Text, "s)<(machine|game).*name=" . """" . rom . """" . ".*" . "cloneof=" . """" . "[^""""]*", parent)
1562 StringUtils.RegExMatch(parent,"cloneof=" . """" . ".*", parent)
1563 StringUtils.RegExMatch(parent,"""" . ".*", parent)
1564 parent := StringUtils.TrimLeft(parent, 1)
1565 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*rotate=" . """" . "[0-9]+" . """", angle)
1566 StringUtils.RegExMatch(angle,"[0-9]+", angle, "-6")
1567 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*width=" . """" . "[0-9]+" . """", width)
1568 StringUtils.RegExMatch(width,"[0-9]+", width, "-6")
1569 StringUtils.RegExMatch(TempBezelFile.Text, "s)<display.*height=" . """" . "[0-9]+" . """", Height)
1570 StringUtils.RegExMatch(Height,"[0-9]+", Height, "-6")
1571 StringUtils.RegExMatch(TempBezelFile.Text, "s)<control.*ways=" . """" . "[0-9]+" . """", Ways)
1572 StringUtils.RegExMatch(Ways,"[0-9]+", Ways, "-6")
1573 logVars := "Parent|Angle|Height|Width|Ways"
1574 Loop, Parse, logVars, |
1575 {
1576 currentobj := {}
1577 currentobj.Label := A_Loopfield
1578 currentobj.Value := %A_Loopfield%
1579 ListXMLObject.Insert(currentobj["Label"], currentobj)
1580 listXMLLog .= "`r`n`t`t`t`t`t" . currentobj["Label"] . " = " . currentobj["Value"]
1581 }
1582 RLLog.Info("Module - MAME ListXML values: " . listXMLLog)
1583 If (ListXMLObject["Height"].Value > ListXMLObject["Width"].Value) {
1584 ListXMLObject["Angle"].Value := true
1585 RLLog.Info("Module - This game's height is greater than its width, forcing vertical mode")
1586 }
1587 TempBezelFile.Delete()
1588 Return ListXMLObject
1589 }
1590
1591 GenerateSoftResetScript(){ ; Generates a lua script to send a soft reset to MAME
1592 Global emuPath
1593
1594 SoftScriptFile := new File(emuPath . "\soft_reset.lua")
1595 ScriptFileName := emuPath . "\soft_reset.lua"
1596 SoftScriptFile.Delete()
1597
1598 AppendTxt :="
1599 (
1600 -- This script will reset the machine
1601 local function reset_machine()
1602 if resetcounter == nil then
1603 manager:machine():soft_reset();
1604 resetcounter = 1;
1605 end
1606 end
1607 if resetcounter == nil then
1608 emu.wait(1);
1609 reset_machine();
1610 end
1611 )"
1612 SoftScriptFile.Append(AppendTxt)
1613 Return SoftScriptFile.FileFullPath
1614 }
1615
1616 GeneratePressButtonScript(button1,button2=""){ ; Generates a lua script to send a soft reset to MAME
1617 Global emuPath
1618
1619 PressScriptFile := new File(emuPath . "\press_button.lua")
1620 PressScriptFile.Delete()
1621 If (button2) {
1622 button2str := "`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(1);`n`t`temu.wait(1);`n`t`tioport[""" . button2 . """]:write(0);"
1623 }
1624
1625 AppendTxt :="
1626 (
1627 local function press_button()
1628 if resetcounter == nil then
1629 ioport[""" . button1 . """]:write(1);
1630 emu.wait(1);
1631 ioport[""" . button1 . """]:write(0);
1632 resetcounter = 1;" . button2str . "
1633 end
1634 end
1635 if resetcounter == nil then
1636 emu.wait(1);
1637 press_button();
1638 end
1639 )"
1640 PressScriptFile.Append(AppendTxt)
1641 Return PressScriptFile.FileFullPath
1642 }
1643
1644 BuildNVRAMObject() {
1645 Global nvramSettings,RLLog
1646 RLLog.Info("BuildNVRAMObject - Started")
1647
1648 nvramSettings := {}
1649
1650 nvramSettings["vr"] := {}
1651 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"]}}}
1652
1653 nvramSettings["vr"]["Player"] := {}
1654 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"})
1655 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"})
1656 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"})
1657 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"})
1658 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"})
1659 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"})
1660 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"})
1661 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"})
1662 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"]}}
1663
1664 nvramSettings["vformula"] := {}
1665 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"]}}}
1666
1667 nvramSettings["vformula"]["Player"] := {}
1668 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"})
1669 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"})
1670 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"})
1671 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"})
1672 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"})
1673 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"})
1674 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"})
1675 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"})
1676 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"]}}
1677
1678 RLLog.Info("BuildNVRAMObject - Ended")
1679 }
1680
1681 BezelLabel:
1682 emuConsoleWindow.Set("Transparent",0)
1683 Return
1684
1685 HaltEmu:
1686 If (pauseMethod = 1)
1687 { disableSuspendEmu := "true"
1688 disableRestoreEmu := "true"
1689 emuPrimaryWindow.PostMessage("0x211",1)
1690 } Else If (pauseMethod = 2)
1691 { disableSuspendEmu := "true"
1692 emuPrimaryWindow.PostMessage("0x211",1)
1693 } Else If (pauseMethod = 3)
1694 { disableSuspendEmu := "true"
1695 disableRestoreEmu := "true"
1696 emuPrimaryWindow.PostMessage(0x0400+6,1)
1697 } Else If (pauseMethod = 4)
1698 { disableSuspendEmu := "true"
1699 emuPrimaryWindow.PostMessage(0x0400+6,1)
1700 } Else If (pauseMethod = 5)
1701 { disableSuspendEmu := "true"
1702 KeyUtils.Send("{P down}")
1703 TimerUtils.Sleep(1000)
1704 KeyUtils.Send("{P up} ")
1705 }
1706 Return
1707 RestoreEmu:
1708 If (pauseMethod = 1)
1709 emuPrimaryWindow.PostMessage("0x212",1)
1710 Else If (pauseMethod = 2)
1711 emuPrimaryWindow.PostMessage("0x212",1)
1712 Else If (pauseMethod = 3)
1713 emuPrimaryWindow.PostMessage(0x0400+6,0)
1714 Else If (pauseMethod = 4)
1715 emuPrimaryWindow.PostMessage(0x0400+6,0)
1716 Else If (pauseMethod = 5) {
1717 disableSuspendEmu := "true"
1718 KeyUtils.Send("{P down}")
1719 TimerUtils.Sleep(1000)
1720 KeyUtils.Send("{P up} ")
1721 }
1722 emuPrimaryWindow.Activate()
1723 Return
1724
1725 CloseProcess:
1726 FadeOutStart()
1727 If (networkSession && networkPlayers > 1) {
1728 Loop % networkPlayers {
1729 MameMultiPlayer%A_Index%Window.Close()
1730 MameMultiPlayer%A_Index%Window.WaitClose()
1731 }
1732 } Else
1733 emuPrimaryWindow.Close()
1734 Return
1735
173618:26:08:861 | RL | INFO | +16 | BuildScript - Loaded Pause scripts
173718:26:08:862 | RL | INFO | +0 | BuildScript - Loaded Multi-Player scripts
173818:26:08:863 | RL | INFO | +0 | BuildScript - Loaded Statistics.ahk script
173918:26:08:863 | RL | INFO | +0 | BuildScript - Loaded User Functions.ahk script
174018:26:08:863 | RL | INFO | +0 | BuildScript - Finished injecting functions into module
174118:26:08:865 | RL | INFO | +0 | Main - Module is built
174218:26:08:865 | RL | INFO | +0 | CheckFile - Checking if D:\RocketLauncher\AutoHotkey.dll exists
174318:26:08:866 | RL | INFO | +0 | Main - Running module
174418:26:09:046 | MD | INFO | +N/A | Module initialized
174518:26:09:048 | MD | INFO | +0 | StartModule - Started
174618:26:09:048 | MD | INFO | +0 | StartModule - MEmu: MAME
1747 MEmuV: v0.166
1748 MURL: http://www.mame.net/
1749 MAuthor: djvj,faahrev,brolly,Tomkun
1750 MVersion: 2.3.7
1751 MCRC: 5C737136
1752 iCRC: 25E2CCF
1753 MID:
1754 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"
175518:26:09:048 | MD | INFO | +0 | StartModule - You have a supported System Name for this module: "AAE"
175618:26:09:048 | MD | INFO | +0 | PluginInit - Started
175718:26:09:048 | MD | INFO | +0 | CheckFile - Checking if D:\HyperSpin\Databases\AAE\AAE.xml exists
175818:26:09:049 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Game Logo|System Logo
175918:26:09:049 | MD | INFO | +0 | BuildAssetsTable - Ended
176018:26:09:049 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Artwork1|Box Art|Cartridge|Flyers|Letters|Other
176118:26:09:082 | MD | INFO | +32 | BuildAssetsTable - Ended
176218:26:09:082 | MD | INFO | +0 | BuildAssetsTable - Started - Building Table for: Game Video|System Video
176318:26:09:083 | MD | INFO | +0 | BuildAssetsTable - Ended
176418:26:09:083 | MD | INFO | +0 | PluginInit - Ended
176518:26:09:083 | MD | INFO | +0 | LEDBlinky - Started, sending mode START
176618:26:09:083 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\LEDBlinky\LEDBlinky\LEDBlinky.exe "solarq" "AAE"
176718:26:09:117 | MD | INFO | +46 | LEDBlinky - Ended
176818:26:09:117 | MD | INFO | +0 | WinIPAC - Started with mode: START
176918:26:09:117 | MD | INFO | +0 | Run - Running: C:\Program Files (x86)\WinIPAC V2\WinIPAC.exe "D:\RocketLauncher\Profiles\WinIPAC\MAME.ipc"
177018:26:09:124 | MD | INFO | +0 | WinIPAC - Ended
177118:26:09:125 | MD | INFO | +0 | StartModule - Ended
177218:26:09:125 | MD | INFO | +0 | i18n - Started
177318:26:09:125 | MD | INFO | +0 | i18n - Ended, using "Abrir" for "dialog.open"
177418:26:09:126 | MD | WARNING | +0 | Module - "AAE" is not a known console or computer system. Defaulting to MAME's Arcade mode for the remainder of this MAME module.
177518:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Fullscreen: true (DEFAULT)
177618:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - LegacyMode: false (DEFAULT)
177718:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - MAME_BIOS_Path: D:\Emulators\MAME\MAME\roms (DEFAULT)
177818:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Videomode: d3d (DEFAULT)
177918:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - PauseMethod: 1 (DEFAULT)
178018:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - BilinearFilter: false (DEFAULT)
178118:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - HLSL: false (DEFAULT)
178218:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - GLSL: false (DEFAULT)
178318:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - BezelMode: layout (DEFAULT)
178418:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - VerticalRotationMode: none (DEFAULT)
178518:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - CheatMode: false (DEFAULT)
178618:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - CheatModeKey: (NO VALUE)
178718:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - UseSoftwareList: false (DEFAULT)
178818:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - StaticParameters: (NO VALUE)
178918:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
179018:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Parameters: (NO VALUE)
179118:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - MameRomName: (NO VALUE)
179218:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Autosave: false (DEFAULT)
179318:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Volume: (NO VALUE)
179418:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Artwork_Crop: true (DEFAULT)
179518:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Use_Bezels: false (DEFAULT)
179618:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Use_Overlays: true (DEFAULT)
179718:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Use_Backdrops: true (DEFAULT)
179818:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Use_Cpanels: false (DEFAULT)
179918:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - Use_Marquees: false (DEFAULT)
180018:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - IniPath: (NO VALUE)
180118:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - HashPath: (NO VALUE)
180218:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - UseControllerRemap: true (DEFAULT)
180318:26:09:126 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapPath: D:\Emulators\MAME\MAME\ControllerRemap\ControllerRemap.exe (DEFAULT)
180418:26:09:127 | MD | INFO | +0 | RIniFile.Read - Module - ControllerRemapConfigPath: D:\Emulators\MAME\MAME\ControllerRemap\ctrlr\ (DEFAULT)
180518:26:09:127 | MD | INFO | +0 | RIniFile.Read - Module - MAMECtrlrPath: D:\Emulators\MAME\MAME\ctrlr (DEFAULT)
180618:26:09:127 | MD | INFO | +0 | RIniFile.Read - Module - Enable_Link_Play: false (DEFAULT)
180718:26:09:127 | MD | INFO | +0 | FadeApp - Hiding Frontend by making it transparent
180818:26:09:127 | MD | INFO | +0 | StartGlobalUserFeatures - Starting
180918:26:09:127 | MD | INFO | +0 | StartGlobalUserFeatures - Ending
181018:26:09:344 | MD | INFO | +219 | Module - MAME ListXML values:
1811 Parent =
1812 Angle = 180
1813 Height =
1814 Width =
1815 Ways = 2
181618:26:09:344 | MD | INFO | +0 | Controller Remap: Start
181718:26:09:344 | MD | INFO | +0 | Controller Remap: ControllerRemapConfigPath: D:\Emulators\MAME\MAME\ControllerRemap\ctrlr\
181818:26:09:345 | MD | INFO | +0 | Controller Remap: No Controller config file found.
181918:26:09:345 | MD | INFO | +0 | Controller Remap: End
182018:26:09:345 | MD | INFO | +0 | Module - Detected MAME Product Version from 'D:\Emulators\MAME\MAME\mame64.exe' is 177
182118:26:09:345 | MD | INFO | +0 | HideAppStart - Starting HideAppTimer, scanning for windows defined every 2ms
182218:26:09:345 | MD | INFO | +0 | HideAppStart - Ended
182318:26:09:345 | MD | INFO | +0 | Module - Running MAME in non-legacy mode
182418:26:09:345 | MD | INFO | +0 | Module - SinglePlayer session
182518:26:09:345 | MD | INFO | +0 | PreLaunch - Starting
182618:26:09:345 | MD | INFO | +0 | PreLaunch - Ending
182718:26:09:345 | MD | INFO | +0 | Process.Run - Running: "D:\Emulators\MAME\MAME\mame64.exe" solarq -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
182818:26:09:366 | MD | INFO | +16 | PostLaunch - Starting
182918:26:09:366 | MD | INFO | +0 | PostLaunch - Ending
183018:26:09:366 | MD | INFO | +0 | Window.Wait - Waiting for window "ahk_class MAME"
183118:26:11:374 | MD | INFO | +2015 | Window.WaitActive - Waiting for "ahk_class MAME"
183218:26:44:798 | MD | ERROR | +33422 | ScriptError - There was an error waiting for the window "ahk_class MAME" to become active. Please check you have the correct version emulator installed for this module, followed any notes in the module, and have this emulator working outside your Frontend first. Also turn off Fade to see if you are hiding your problem.
183318:26:44:798 | MD | INFO | +0 | ExitModule - Started
183418:26:44:799 | MD | INFO | +0 | Starting Updating Statistics:
183518:26:44:918 | MD | INFO | +125 | Game section statistics updated.
183618:26:44:918 | MD | INFO | +0 | LEDBlinky - Started, sending mode END
183718:26:44:918 | MD | INFO | +0 | Run - Running: D:\Utilities\3rd Party\LEDBlinky\LEDBlinky\LEDBlinky.exe 4
183818:26:44:927 | MD | INFO | +0 | LEDBlinky - Ended
183918:26:44:927 | MD | INFO | +0 | PostExit - Starting
184018:26:44:927 | MD | INFO | +0 | PostExit - Ending
184118:26:44:927 | MD | INFO | +0 | WinIPAC - Started with mode: END
184218:26:44:927 | MD | INFO | +0 | Run - Running: C:\Program Files (x86)\WinIPAC V2\WinIPAC.exe "D:\RocketLauncher\Profiles\WinIPAC\HyperSpin.ipc"
184318:26:44:933 | MD | INFO | +16 | WinIPAC - Ended
184418:26:44:933 | MD | INFO | +0 | ExitModule - Ended
1845End of Module Logs
184618:26:45:043 | RL | INFO | +36187 | Main - Module ended, exiting RocketLauncher normally
184718:26:45:043 | RL | INFO | +0 | ExitScript - Started
184818:26:45:048 | RL | INFO | +0 | ExitScript - Restoring taskbar
184918:26:45:160 | RL | INFO | +110 | SystemCursor - Restoring mouse cursor
185018:26:45:170 | RL | INFO | +15 | ExitScript - Restored cursor
1851[/code]