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