Advertisement
Guest User

Demul57ControlMapping

a guest
Sep 20th, 2012
993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.52 KB | None | 0 0
  1. ;----------------------------------------------------------------------------
  2. ; Sammy Atomiswave
  3. ; Demul v0.5.6, Demul v0.5.7
  4. ; by djvj
  5. ; 1.9
  6. ;
  7. ; Notes:
  8. ; Required - nvram files can be found in my user dir on the FTP at /Upload Here/djvj/Atomiswave\Emulators. Additonal instructions from my orignal HL1.0 script at http://www.hyperspin-fe.com/forum/showpost.php?p=86093&postcount=104
  9. ; Required - Settings.ini: can be found in my user dir on the FTP at /Upload Here/djvj/Atomiswave\Modules\Atomiswave
  10. ; settings.ini must be placed in Modules\Atomiswave\. This script will make it for you if it does not exist upon first load.
  11. ; Paths should have backslashes at the end. Defining paths this way makes it so you don't have to have multiple module dirs and scripts.
  12. ; Download the loading.png and logo.png from http://www.hyperspin-fe.com/downloads/Modules/Atomiswave/ and place them in your Modules\Atomiswave\
  13. ; GDI images must match mame zip names and be extracted and have a .dat extension
  14. ; romExtensions should be zip
  15. ; The HyperSpin settings ini (\Settings\Atomiswave\Atomiswave.ini) can have the emu and emupath set to whatever you want, it's not used. Only rompath and extensions are important.
  16.  
  17. ; Demul:
  18. ; Place the atomiswave.zip bios archive in the demul\roms subdir
  19. ; Fullscreen gets sent by this script
  20. ; Set your Video Plugin to gpuOglv3 and set your desired resolution there
  21. ; In case your control codes do not match mine, set your desired control type in demul, then open the demul.ini and find section PORTB and look for the device key. Use this number instead of the one I provided
  22. ; Demul Controle:
  23. ; Start a game of each control type (look in the Settings.ini for these types) and configure your controls to play the game. Copy paste the ATOMISWAVE0_0 and ATOMISWAVE0_1 sections into the Settings.ini under the matching controls section.
  24. ;
  25. ; Demul v0.5.7:
  26. ; gpuDX11, gpuDXv3, and gpuDXLegacy are all supported. Define what plugin you want to use for each game in the Settings.ini.
  27. ; Read the notes at the top of the settings.ini on how to control windowed fullscreen, true fullscreen, or windowed mode
  28. ; Windowed fullscreen will take effect the 2nd time you run the emu. It has to calculate your resolution on first run.
  29. ;----------------------------------------------------------------------------
  30.  
  31. ; check for and load into memory the Settings.ini
  32. settingsFile := CheckFile(A_Scriptdir . "\Modules\" . systemName . "\Settings.ini")
  33. ini_load(ini, settingsFile)
  34. ini_exportToGlobals(ini,0,"") ; creating variables of each section & key of the Settings.ini
  35.  
  36. controls := %romName%_Controls ; conversion so script is easier to read
  37. system := %romName%_System ; necessary conversion
  38.  
  39. GUI_ID := FadeInStart()
  40.  
  41. ; This section writes your custom keys to the padDemul.ini or JVS.ini. Atomiswave games had many control panel layouts. The only way we can accomodate for these differing controls, is to keep track of them all and write them to the ini at the launch of each game.
  42. ; First we check if the last controls used are the same as the game we want to play, so we don't waste time updating the ini if it is not necessary. For example playing 2 sfstyle type games in a row, we wouldn't need to write to the ini.
  43. If ( %romName%_emulator = "demul" ) {
  44. ; check for and load into memory the Demul.ini
  45. demulFile := CheckFile(settings_pathToDemul . "Demul.ini")
  46. ini_load(demulini, demulFile)
  47.  
  48. ; check for and load into memory the padDemul.ini
  49. padFile := CheckFile(settings_pathToDemul . "padDemul.ini")
  50. ini_load(padini, padFile)
  51.  
  52. ; This section tells demul what arcade control type should be connected to the game. Options are standard (aka controller), mouse, lightgun, or keyboard
  53. If ( controls = "lightgun" || controls = "mouse" )
  54. ini_replaceValue(demulini, "PORTB", "device", settings_demulMouseCode)
  55. Else If ( controls = "keyboard" )
  56. ini_replaceValue(demulini, "PORTB", "device", settings_demulKeyboardCode)
  57. Else ; accounts for all other control types
  58. ini_replaceValue(demulini, "PORTB", "device", settings_demulControllerCode)
  59.  
  60. If ( settings_LastControlUsedDemul != controls ) {
  61. WriteAtomiswaveControls(padini,0,%controls%_ATOMISWAVE0_0_SHOT1,%controls%_ATOMISWAVE0_0_SHOT2,%controls%_ATOMISWAVE0_0_SHOT3,%controls%_ATOMISWAVE0_0_SHOT4,%controls%_ATOMISWAVE0_0_SHOT5,%controls%_ATOMISWAVE0_0_START,%controls%_ATOMISWAVE0_0_COIN,%controls%_ATOMISWAVE0_0_UP,%controls%_ATOMISWAVE0_0_DOWN,%controls%_ATOMISWAVE0_0_LEFT,%controls%_ATOMISWAVE0_0_RIGHT)
  62. WriteAtomiswaveControls(padini,1,%controls%_ATOMISWAVE0_1_SHOT1,%controls%_ATOMISWAVE0_1_SHOT2,%controls%_ATOMISWAVE0_1_SHOT3,%controls%_ATOMISWAVE0_1_SHOT4,%controls%_ATOMISWAVE0_1_SHOT5,%controls%_ATOMISWAVE0_1_START,%controls%_ATOMISWAVE0_1_COIN,%controls%_ATOMISWAVE0_1_UP,%controls%_ATOMISWAVE0_1_DOWN,%controls%_ATOMISWAVE0_1_LEFT,%controls%_ATOMISWAVE0_1_RIGHT)
  63. }
  64. ini_replaceValue(ini, "settings", "LastControlUsedDemul", controls)
  65. ini_save(ini, settingsFile)
  66. ini_save(padini, padFile)
  67. ini_save(demulini, demulFile)
  68. }
  69. Else If ( %romName%_emulator = "demul57" ) {
  70. ; check for and load into memory the Demul.ini
  71. demul57File := CheckFile(settings_pathToDemul57 . "Demul.ini")
  72. ini_load(demul57ini, demul57File)
  73.  
  74. ; check for and load into memory the padDemul.ini
  75. pad57File := CheckFile(settings_pathToDemul57 . "padDemul.ini")
  76. ini_load(pad57ini, pad57File)
  77.  
  78. ; verify user set desired gpu plugin name correctly, else result to Default
  79. If ( %romName%_Demul57Plugin != "gpuDX11" And %romName%_Demul57Plugin != "gpuDXv3" And %romName%_Demul57Plugin != "gpuDXLegacy" And %romName%_Demul57Plugin != "" )
  80. ScriptError("Invalid gpu plugin defined for " . romName . " in your Settings.ini.`nLeave the plugin blank to enable default.`nValid options are gpuDX11, gpuDXv3, or gpuDXLegacy.")
  81. Else ( %romName%_Demul57Plugin = "" )
  82. %romName%_Demul57Plugin = %settings_demul57DefaultGPU%
  83. ; msgbox % %romName%_Demul57Plugin
  84.  
  85. ; check for and load into memory the specified gpu plugin
  86. demul57gpuFile := CheckFile(settings_pathToDemul57 . %romName%_Demul57Plugin . ".ini")
  87. ini_load(gpuini, demul57gpuFile)
  88.  
  89. ; This updates the Demul.ini with your gpu plugin choice for the selected rom
  90. ini_replaceValue(demul57ini, "plugins", "gpu", %romName%_Demul57Plugin . ".dll")
  91.  
  92. ; This section tells demul what arcade control type should be connected to the game. Options are standard (aka controller), mouse, lightgun, or keyboard
  93. If ( controls = "lightgun" || controls = "mouse" )
  94. ini_replaceValue(demul57ini, "PORTB", "device", settings_demulMouseCode)
  95. Else If ( controls = "keyboard" )
  96. ini_replaceValue(demul57ini, "PORTB", "device", settings_demulKeyboardCode)
  97. Else ; accounts for all other control types
  98. ini_replaceValue(demul57ini, "PORTB", "device", settings_demulControllerCode)
  99.  
  100. If ( settings_LastControlUsedDemul57 != controls ) {
  101. ;begin changes for demul 57 control mapping
  102. ;begin changes for demul 57 control mapping
  103. ;begin changes for demul 57 control mapping
  104. WriteAtomiswaveControls57(pad57ini,0,%controls%_JAMMA0_0_PUSH1,%controls%_JAMMA0_0_PUSH2,%controls%_JAMMA0_0_PUSH3,%controls%_JAMMA0_0_PUSH4,%controls%_JAMMA0_0_PUSH5,%controls%_JAMMA0_0_PUSH6,%controls%_JAMMA0_0_PUSH7,%controls%_JAMMA0_0_PUSH8,%controls%_JAMMA0_0_SERVICE,%controls%_JAMMA0_0_START,%controls%_JAMMA0_0_COIN,%controls%_JAMMA0_0_DIGITALUP,%controls%_JAMMA0_0_DIGITALDOWN,%controls%_JAMMA0_0_DIGITALLEFT,%controls%_JAMMA0_0_DIGITALRIGHT,%controls%_JAMMA0_0_ANALOGUP,%controls%_JAMMA0_0_ANALOGDOWN,%controls%_JAMMA0_0_ANALOGLEFT,%controls%_JAMMA0_0_ANALOGRIGHT,%controls%_JAMMA0_0_ANALOGUP2,%controls%_JAMMA0_0_ANALOGDOWN2,%controls%_JAMMA0_0_ANALOGLEFT2,%controls%_JAMMA0_0_ANALOGRIGHT2)
  105. WriteAtomiswaveControls57(pad57ini,1,%controls%_JAMMA0_1_PUSH1,%controls%_JAMMA0_1_PUSH2,%controls%_JAMMA0_1_PUSH3,%controls%_JAMMA0_1_PUSH4,%controls%_JAMMA0_1_PUSH5,%controls%_JAMMA0_1_PUSH6,%controls%_JAMMA0_1_PUSH7,%controls%_JAMMA0_1_PUSH8,%controls%_JAMMA0_1_SERVICE,%controls%_JAMMA0_1_START,%controls%_JAMMA0_1_COIN,%controls%_JAMMA0_1_DIGITALUP,%controls%_JAMMA0_1_DIGITALDOWN,%controls%_JAMMA0_1_DIGITALLEFT,%controls%_JAMMA0_1_DIGITALRIGHT,%controls%_JAMMA0_1_ANALOGUP,%controls%_JAMMA0_1_ANALOGDOWN,%controls%_JAMMA0_1_ANALOGLEFT,%controls%_JAMMA0_1_ANALOGRIGHT,%controls%_JAMMA0_1_ANALOGUP2,%controls%_JAMMA0_1_ANALOGDOWN2,%controls%_JAMMA0_1_ANALOGLEFT2,%controls%_JAMMA0_1_ANALOGRIGHT2)
  106. ;end changes for demul 57 control mapping
  107. ;end changes for demul 57 control mapping
  108. ;end changes for demul 57 control mapping
  109. }
  110.  
  111. ini_replaceValue(ini, "settings", "LastControlUsedDemul57", controls)
  112. ini_save(ini, settingsFile)
  113. ini_save(pad57ini, pad57File)
  114. ini_save(demul57ini, demul57File)
  115. }
  116.  
  117.  
  118. ; Now lets run our emulator
  119. If ( %romName%_emulator = "demul" ) {
  120. Run, %settings_demulExe% -run=%system% -rom=%romName%, %settings_PathToDemul%
  121. Sleep, 1000 ; need a second for demul to launch, increase if yours takes longer and the loading screen is closing too soon
  122.  
  123. Loop { ; looping until demul is done loading rom and gpu starts showing frames
  124. Sleep, 200
  125. WinGetTitle, winTitle, AHK_class window
  126. StringSplit, winTextSplit, winTitle, %A_Space%
  127. If ( winTextSplit5 = "gpu:" And winTextSplit6 = "0" )
  128. break
  129. }
  130. WinActivate ahk_class window
  131. Send !{ENTER} ; go fullscreen
  132. GUI_ID2 := FadeInExit()
  133. Process, WaitClose, %settings_demulExe%
  134. }
  135. Else If ( %romName%_emulator = "demul57" ) {
  136. ;Hide Taskbar and Start Button
  137. WinHide, ahk_class Shell_TrayWnd
  138. WinHide, Start ahk_class Button
  139.  
  140. ; Create black background to give the emu the fullscren look
  141. Gui 2: -Caption +ToolWindow
  142. Gui 2: Color, Black
  143. Gui 2: Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%
  144.  
  145. ; setting demul to use true fullscreen if defined in settings.ini, otherwise sets demul to run windowed. This is for gpuDX11 plugin only
  146. If ( %romName%_Demul57Plugin = "gpuDX11" ) {
  147. If ( settings_demul57Max = "fullscreen" ) {
  148. ini_replaceValue(gpuini, "main", "UseFullscreen", 1)
  149. ini_save(gpuini, demul57gpuFile)
  150. } Else {
  151. ini_replaceValue(gpuini, "main", "UseFullscreen", 0)
  152. ini_save(gpuini, demul57gpuFile)
  153. }
  154. }
  155.  
  156. Run, %settings_demulExe% -run=%system% -rom=%romName%, %settings_PathToDemul57%
  157. Sleep, 1000 ; need a second for demul to launch, increase if yours takes longer and the loading screen is closing too soon
  158.  
  159. Loop { ; looping until demul is done loading rom and gpu starts showing frames
  160. Sleep, 200
  161. WinGetTitle, winTitle, AHK_class window
  162. StringSplit, winTextSplit, winTitle, %A_Space%
  163. If ( winTextSplit5 = "gpu:" And winTextSplit6 != "0" And winTextSplit6 != "1" )
  164. break
  165. }
  166. WinActivate ahk_class window
  167.  
  168. If ( ( %romName%_Demul57Plugin = "gpuDXv3" Or %romName%_Demul57Plugin = "gpuDXLegacy" ) && settings_demul57Max = "fullscreen" )
  169. Send !{ENTER} ; go fullscreen for gpuDXv3 and gpuDXLegacy plugins only
  170.  
  171. ; This is where we calculate and maximize demul's window using our pseudo fullscreen code
  172. If ( settings_demul57Max = "true" ) {
  173. WinSet, Style, -0x40000, AHK_class window ; Removes the border of the game window
  174. WinSet, Style, -0xC00000, AHK_class window ; Removes the TitleBar
  175. Send, {F3} ; Removes the MenuBar
  176. MaximizeWindow("AHK_class window") ; this will take effect after you run demul once because we cannot stretch demul's screen while it is running.
  177. }
  178.  
  179. GUI_ID2 := FadeInExit()
  180. Process, WaitClose, %settings_demulExe%
  181.  
  182. ;Restore Taskbar and Start Button
  183. WinShow,ahk_class Shell_TrayWnd
  184. WinShow,Start ahk_class Button
  185. }
  186.  
  187. GUI_ID4 := FadeOutExit()
  188.  
  189. WinActivate, HyperSpin
  190.  
  191. ExitApp
  192.  
  193. ;(¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯)
  194. ; Functions - DO NOT EDIT
  195. ;(_.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._.·´¯`·._)
  196.  
  197. ; Write new controls to padDemul.ini
  198. WriteAtomiswaveControls(ByRef iniR, PLAYER,SHOT1,SHOT2,SHOT3,SHOT4,SHOT5,START,COIN,UP,DOWN,LEFT,RIGHT) {
  199. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "SHOT1", SHOT1)
  200. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "SHOT2", SHOT2)
  201. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "SHOT3", SHOT3)
  202. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "SHOT4", SHOT4)
  203. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "SHOT5", SHOT5)
  204. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "START", START)
  205. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "COIN", COIN)
  206. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "UP", UP)
  207. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "DOWN", DOWN)
  208. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "LEFT", LEFT)
  209. ini_replaceValue(iniR, "ATOMISWAVE0_" . PLAYER, "RIGHT", RIGHT)
  210. }
  211.  
  212.  
  213. ;begin changes for demul 57 control mapping
  214. ;begin changes for demul 57 control mapping
  215. ;begin changes for demul 57 control mapping
  216.  
  217.  
  218. ; Write new controls to padDemul.ini - Demul 5.7
  219. WriteAtomiswaveControls57(ByRef iniR, PLAYER,PUSH1,PUSH2,PUSH3,PUSH4,PUSH5,PUSH6,PUSH7,PUSH8,SERVICE,START,COIN,DIGITALUP,DIGITALDOWN,DIGITALLEFT,DIGITALRIGHT,ANALOGUP,ANALOGDOWN,ANALOGLEFT,ANALOGRIGHT,ANALOGUP2,ANALOGDOWN2,ANALOGLEFT2,ANALOGRIGHT2) {
  220. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH1", PUSH1)
  221. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH2", PUSH2)
  222. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH3", PUSH3)
  223. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH4", PUSH4)
  224. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH5", PUSH5)
  225. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH6", PUSH6)
  226. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH7", PUSH7)
  227. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "PUSH8", PUSH8)
  228. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "SERVICE", SERVICE)
  229. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "START", START)
  230. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "COIN", COIN)
  231. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "DIGITALUP", DIGITALUP)
  232. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "DIGITALDOWN", DIGITALDOWN)
  233. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "DIGITALLEFT", DIGITALLEFT)
  234. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "DIGITALRIGHT", DIGITALRIGHT)
  235. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGUP", ANALOGUP)
  236. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGDOWN", ANALOGDOWN)
  237. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGLEFT", ANALOGLEFT)
  238. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGRIGHT", ANALOGRIGHT)
  239. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGUP2", ANALOGUP2)
  240. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGDOWN2", ANALOGDOWN2)
  241. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGLEFT2", ANALOGLEFT2)
  242. ini_replaceValue(iniR, "JAMMA0_" . PLAYER, "ANALOGRIGHT2", ANALOGRIGHT2)
  243. }
  244.  
  245. ;end changes for demul 57 control mapping
  246. ;end changes for demul 57 control mapping
  247. ;end changes for demul 57 control mapping
  248.  
  249.  
  250.  
  251. MaximizeWindow(class) {
  252. Global
  253. WinGetPos, appX, appY, appWidth, appHeight, %class%
  254. widthMaxPercenty := ( A_ScreenWidth / appWidth )
  255. heightMaxPercenty := ( A_ScreenHeight / appHeight )
  256.  
  257. If ( widthMaxPercenty < heightMaxPercenty )
  258. percentToEnlarge := widthMaxPercenty
  259. Else
  260. percentToEnlarge := heightMaxPercenty
  261.  
  262. appWidthNew := appWidth * percentToEnlarge
  263. appHeightNew := appHeight * percentToEnlarge
  264. Transform, appX, Round, %appX%
  265. Transform, appY, Round, %appY%
  266. Transform, appWidthNew, Round, %appWidthNew%
  267. Transform, appHeightNew, Round, %appHeightNew%
  268. appXPos := ( A_ScreenWidth / 2 ) - ( appWidthNew / 2 )
  269. appYPos := ( A_ScreenHeight / 2 ) - ( appHeightNew / 2 )
  270. IniWrite, %appWidthNew%, %gpuini%, resolution, wWidth
  271. IniWrite, %appHeightNew%, %gpuini%, resolution, wHeight
  272. If ( %romName%_Demul57Plugin = "gpuDX11" ) {
  273. ini_replaceValue(gpuini, "resolution", "Width", appWidthNew)
  274. ini_replaceValue(gpuini, "resolution", "Height", appHeightNew)
  275. } Else {
  276. ini_replaceValue(gpuini, "resolution", "wWidth", appWidthNew)
  277. ini_replaceValue(gpuini, "resolution", "wHeight", appHeightNew)
  278. }
  279. ini_save(gpuini, demul57gpuFile)
  280. WinMove, %class%,, appXPos, appYPos
  281. }
  282.  
  283. ProcessExist(app) {
  284. DetectHiddenWindows, On
  285. Process, Exist, %app%.exe
  286. Return %ErrorLevel%
  287. }
  288.  
  289. ; INI functions curtosy of Tuncay @ http://www.autohotkey.com/forum/viewtopic.php?t=46226
  290. ini_load(ByRef _Content, _Path = "", _convertNewLine = false)
  291. {
  292. ini_buildPath(_Path)
  293. error := true ; If file is found next, then its set to false.
  294. Loop, %_Path%, 0, 0
  295. {
  296. _Path := A_LoopFileLongPath
  297. error := false
  298. Break
  299. }
  300. If (error = false)
  301. {
  302. FileRead, _Content, %_Path%
  303. If (ErrorLevel)
  304. {
  305. error := true
  306. }
  307. }
  308. If (error)
  309. {
  310. _Content := ""
  311. }
  312. Else If (_convertNewLine)
  313. {
  314. StringReplace, _Content, _Content, `r`n, `n, All
  315. }
  316. ErrorLevel := error
  317. Return _Path
  318. }
  319.  
  320. ini_save(ByRef _Content, _Path = "", _convertNewLine = true, _overwrite = true)
  321. {
  322. ini_buildPath(_Path)
  323. error := false
  324. If (_overwrite)
  325. {
  326. Loop, %_Path%, 0, 0
  327. {
  328. _Path := A_LoopFileLongPath
  329. Break
  330. }
  331. If FileExist(_Path)
  332. {
  333. FileDelete, %_Path%
  334. If (ErrorLevel)
  335. {
  336. error := true
  337. }
  338. }
  339. }
  340. Else If FileExist(_Path)
  341. {
  342. error := true
  343. }
  344. If (error = false)
  345. {
  346. If (_convertNewLine)
  347. {
  348. StringReplace, _Content, _Content, `r`n, `n, All
  349. StringReplace, _Content, _Content, `n, `r`n, All
  350. FileAppend, %_Content%, %_Path%
  351. }
  352. Else
  353. {
  354. FileAppend, %_Content%, *%_Path%
  355. }
  356. If (ErrorLevel)
  357. {
  358. error := true
  359. }
  360. }
  361. ErrorLevel := error
  362. Return _Path
  363. }
  364.  
  365. ini_replaceValue(ByRef _Content, _Section, _Key, _Replacement = "", _PreserveSpace = False)
  366. {
  367. If (_Section = "")
  368. _Section = (?:\[.*])?
  369. Else
  370. _Section = \[\s*?\Q%_Section%\E\s*?]
  371. If Not _PreserveSpace
  372. {
  373. _Replacement = %_Replacement% ; Trim spaces.
  374. FirstChar := SubStr(_Replacement, 1, 1)
  375. If (FirstChar = """" AND SubStr(_Replacement, 0, 1)= """"
  376. OR FirstChar = "'" AND SubStr(_Replacement, 0, 1)= "'")
  377. {
  378. StringTrimLeft, _Replacement, _Replacement, 1
  379. StringTrimRight, _Replacement, _Replacement, 1
  380. }
  381. }
  382. ; Note: The regex of this function was written by Mystiq.
  383. RegEx = `aiU)((?:\R|^)\s*%_Section%\s*(?:\R\s*|\R\s*.+\s*=\s*.*?\s*(?=\R)|\R\s*[;#].*?(?=\R))*\R\s*\Q%_Key%\E\s*=).*((?=\R|$))
  384. _Content := RegExReplace(_Content, RegEx, "$1" . _Replacement . "$2", isReplaced, 1)
  385. If isReplaced
  386. ErrorLevel = 0
  387. Else
  388. ErrorLevel = 1
  389. Return isReplaced
  390. }
  391.  
  392. ini_replaceSection(ByRef _Content, _Section, _Replacement = "")
  393. {
  394. If (_Section = "")
  395. _Section = (?:\[.*])?
  396. Else
  397. _Section = \[\s*?\Q%_Section%\E\s*?]
  398. RegEx = `aisU)^(\s*?.*)%_Section%\s*\R?.*(\R*\s*(?:\[.*|\R))?$
  399. _Content := RegExReplace(_Content, RegEx, "$1" . _Replacement . "$2", isReplaced, 1)
  400. If isReplaced
  401. ErrorLevel = 0
  402. Else
  403. ErrorLevel = 1
  404. Return isReplaced
  405. }
  406.  
  407. ini_getValue(ByRef _Content, _Section, _Key, _PreserveSpace = False)
  408. {
  409. If (_Section = "")
  410. _Section = (?:\[.*])?
  411. Else
  412. {
  413. _Section = \[\s*?\Q%_Section%\E\s*?]
  414. }
  415. ; Note: The regex of this function was rewritten by Mystiq.
  416. RegEx = `aiU)(?:\R|^)\s*%_Section%\s*(?:\R\s*|\R\s*.+\s*=\s*.*?\s*(?=\R)|\R\s*[;#].*?(?=\R))*\R\s*\Q%_Key%\E\s*=(.*)(?=\R|$)
  417. /*
  418. RegEx := "`aiU)"
  419. . "(?:\R|^)\s*" . _Section . "\s*" ;-- section
  420. . "(?:"
  421. . "\R\s*" ;-- empty lines
  422. . "|\R\s*[\w\s]+\s*=\s*.*?\s*(?=\R)" ;-- OR other key=value pairs
  423. . "|\R\s*[;#].*?(?=\R)" ;-- OR commented lines
  424. . ")*"
  425. . "\R\s*\Q" . _Key . "\E\s*=(.*)(?=\R|$)" ;-- match
  426. */
  427.  
  428. If RegExMatch(_Content, RegEx, Value)
  429. {
  430. If Not _PreserveSpace
  431. {
  432. Value1 = %Value1% ; Trim spaces.
  433. FirstChar := SubStr(Value1, 1, 1)
  434. If (FirstChar = """" AND SubStr(Value1, 0, 1)= """"
  435. OR FirstChar = "'" AND SubStr(Value1, 0, 1)= "'")
  436. {
  437. StringTrimLeft, Value1, Value1, 1
  438. StringTrimRight, Value1, Value1, 1
  439. }
  440. }
  441. ErrorLevel = 0
  442. }
  443. Else
  444. {
  445. ErrorLevel = 1
  446. Value1 =
  447. }
  448. Return Value1
  449. }
  450.  
  451. ini_getSection(ByRef _Content, _Section)
  452. {
  453. If (_Section = "")
  454. _Section = (?:\[.*])?
  455. Else
  456. _Section = \[\s*?\Q%_Section%\E\s*?]
  457. RegEx = `aisUS)^.*(%_Section%\s*\R?.*)(?:\R*\s*(?:\[.*?|\R))?$
  458. If RegExMatch(_Content, RegEx, Value)
  459. ErrorLevel = 0
  460. Else
  461. {
  462. ErrorLevel = 1
  463. Value1 =
  464. }
  465. Return Value1
  466. }
  467.  
  468. ini_getAllSectionNames(ByRef _Content, ByRef _count = "")
  469. {
  470. RegEx = `aisUmS)^.*(?:\s*\[\s*?(.*)\s*?]\s*|.+=.*).*$
  471. SectionNames := RegExReplace(_Content, RegEx, "$1", MatchNum)
  472. If MatchNum
  473. {
  474. SectionNames := RegExReplace(SectionNames, "S)\R+", ",", _count)
  475. ; Workaround, whitespaces only should be eliminated.
  476. SectionNames := RegExReplace(SectionNames, "S),+ +", "")
  477. StringReplace, SectionNames, SectionNames, `,, `,, UseErrorLevel
  478. _count := ErrorLevel ? ErrorLevel : 0
  479. _count := _count ? _count : 0
  480. StringTrimRight, SectionNames, SectionNames, 1
  481. ErrorLevel = 0
  482. }
  483. Else
  484. {
  485. ErrorLevel = 1
  486. _count = 0
  487. SectionNames =
  488. }
  489. Return SectionNames
  490. }
  491.  
  492. ini_getAllValues(ByRef _Content, _Section = "", ByRef _count = "")
  493. {
  494. RegEx = `aisUmS)^(?=.*)(?:\s*\[\s*?.*\s*?]\s*|\s*?.+\s*?=(.*))(?=.*)$
  495. If (_Section != "")
  496. Values := RegExReplace(ini_getSection(_Content, _Section), RegEx, "$1`n", Match)
  497. Else
  498. Values := RegExReplace(_Content, RegEx, "$1`n", Match)
  499. If Match
  500. {
  501. Values := RegExReplace(Values, "`aS)\R+", "`n")
  502. ; Workaround, sometimes it catches sections. Whitespaces only should be eliminated also.
  503. Values := RegExReplace(Values, "`aS)\[.*?]\R+|\R+$|\R+ +$", "")
  504. StringReplace, Values, Values, `n, `n, UseErrorLevel
  505. _count := ErrorLevel ? ErrorLevel : 0
  506. StringTrimLeft, Values, Values, 1
  507. ErrorLevel = 0
  508. }
  509. Else
  510. {
  511. ErrorLevel = 1
  512. _count = 0
  513. Values =
  514. }
  515. Return Values
  516. }
  517.  
  518. ini_exportToGlobals(ByRef _Content, _CreateIndexVars = false, _Prefix = "ini", _Seperator = "_", _SectionSpaces = "", _PreserveSpace = False)
  519. {
  520. Global
  521. Local secCount := 0, keyCount := 0, i := 0, Section, Section1, currSection, Pair, Pair1, Pair2, FirstChar
  522. If (_Prefix != "")
  523. {
  524. _Prefix .= _Seperator
  525. }
  526. Loop, Parse, _Content, `n, `r
  527. {
  528. If (Not RegExMatch(A_LoopField, "`aiSm)\[\s*(.+?)\s*]", Section))
  529. {
  530. If (RegExMatch(A_LoopField, "`aiSm)\s*(\b(?:.+?|\s?)\b)\s*=(.*)", Pair))
  531. {
  532. If (!_PreserveSpace)
  533. {
  534. StringReplace, Pair1, Pair1, %A_Space%, , All
  535. Pair2 = %Pair2% ; Trim spaces.
  536. FirstChar := SubStr(Pair2, 1, 1)
  537. If (FirstChar = """" AND SubStr(Pair2, 0, 1)= """"
  538. OR FirstChar = "'" AND SubStr(Pair2, 0, 1)= "'")
  539. {
  540. StringTrimLeft, Pair2, Pair2, 1
  541. StringTrimRight, Pair2, Pair2, 1
  542. }
  543. }
  544. StringReplace, currSection, currSection, %A_Space%, %_SectionSpaces%, All
  545. %_Prefix%%currSection%%_Seperator%%Pair1% := Pair2 ; ini_section_key := value
  546. keyCount++
  547. If (_CreateIndexVars)
  548. {
  549. %_Prefix%%currSection%0++
  550. i := %_Prefix%%currSection%0
  551. %_Prefix%%currSection%%i% := Pair1
  552. }
  553. }
  554. }
  555. Else
  556. {
  557. currSection := Section1
  558. If (_CreateIndexVars)
  559. {
  560. StringReplace, currSection, currSection, %A_Space%, %_SectionSpaces%, All
  561. secCount++
  562. %_Prefix%%secCount% := currSection
  563. }
  564. }
  565. }
  566. If (_CreateIndexVars)
  567. {
  568. %_Prefix%0 := secCount
  569. }
  570. If (secCount = 0 AND keyCount = 0)
  571. {
  572. ErrorLevel = 1
  573. }
  574. Else
  575. {
  576. ErrorLevel = 0
  577. }
  578. Return keyCount
  579. }
  580.  
  581. ini_buildPath(ByRef _path)
  582. {
  583. ; Set to default wildcard if filename or exension are not set.
  584. If (_Path = "")
  585. {
  586. _Path := RegExReplace(A_ScriptFullPath, "S)\..*?$") . ".ini"
  587. }
  588. Else If (SubStr(_Path, 0, 1) = "\")
  589. {
  590. _Path .= RegExReplace(A_ScriptName, "S)\..*?$") . ".ini"
  591. }
  592. Else
  593. {
  594. If (InStr(FileExist(_Path), "D"))
  595. {
  596. ; If the current path is a directory, then add default file pattern to the directory.
  597. _Path .= "\" . RegExReplace(A_ScriptName, "S)\..*?$") . ".ini"
  598. }
  599. Else
  600. {
  601. ; Check all parts of path and use defaults, if any part is not specified.
  602. SplitPath, _Path,, fileDir, fileExtension, fileNameNoExt
  603. If (fileDir = "")
  604. {
  605. fileDir := A_WorkingDir
  606. }
  607. If (fileExtension = "")
  608. {
  609. fileExtension := "ini"
  610. }
  611. If (fileNameNoExt = "")
  612. {
  613. fileNameNoExt := RegExReplace(A_ScriptName, "S)\..*?$")
  614. }
  615. _Path := fileDir . "\" . fileNameNoExt . "." . fileExtension
  616. }
  617. }
  618. Return 0
  619. }
  620.  
  621. CloseProcess:
  622. GUI_ID3 := FadeOutStart()
  623. If ( %romName%_emulator = "demul" )
  624. WinClose, %settings_demulExe%
  625. Else If ( %romName%_emulator = "demul57" ) { ; demul 0.5.7 crashes 50% of the time if you try to close it any other way
  626. Send, {F3}{Alt}{Up}s{Enter}
  627. Sleep, 50
  628. Process, Close, %settings_demulExe%
  629. }
  630. Return
  631.  
  632.  
  633.  
  634.  
  635.  
  636. ***************** SETTINGS.INI *************************
  637. ***************** SETTINGS.INI *************************
  638. ***************** SETTINGS.INI *************************
  639.  
  640. # demul57Max - true (gives a windowed mode full screen, not true fullscreen), fullscreen (sets demul to go true fullscreen), false (demul runs in a normal window)
  641. # Demul57Plugin - this is used in the per game settings. Choices are gpuDX11, gpuDXv3, and gpuDXLegacy
  642. [settings]
  643. PathToDemul =D:\HyperSpin Install 1.0 Final\Emulators\Sammy Atomiswave\demul056-32\
  644. PathToDemul57 =D:\HyperSpin Install 1.0 Final\Emulators\Sammy Atomiswave\demul057\
  645. DemulExe =demul.exe
  646. LoadingScreen =true
  647. demul57Max =true
  648. demul57DefaultGPU =gpuDXLegacy
  649. demulControllerCode = 16777216
  650. demulMouseCode = 131072
  651. demulKeyboardCode = 1073741824
  652. demulLightgunCode = -2147483648 ; not used but here in case
  653. LastControlUsedDemul =standard
  654. LastControlUsedDemul57 =standard
  655.  
  656. [standard_ATOMISWAVE0_0]
  657. UP = 200
  658. DOWN = 208
  659. LEFT = 203
  660. RIGHT = 205
  661. SHOT1 = 29
  662. SHOT2 = 56
  663. SHOT3 = 57
  664. SHOT4 = 42
  665. SHOT5 = 44
  666. START = 2
  667. COIN = 6
  668.  
  669. [standard_ATOMISWAVE0_1]
  670. UP = 19
  671. DOWN = 33
  672. LEFT = 32
  673. RIGHT = 34
  674. SHOT1 = 30
  675. SHOT2 = 31
  676. SHOT3 = 16
  677. SHOT4 = 17
  678. SHOT5 = 23
  679. START = 3
  680. COIN = 7
  681.  
  682. ###BEGIN CHANGES FOR DEMUL 57 FIX
  683. ###BEGIN CHANGES FOR DEMUL 57 FIX
  684. ###BEGIN CHANGES FOR DEMUL 57 FIX
  685.  
  686. ### I only play games that use the standard controls, if others are needed, can be added following the same pattern. [driving_JAMMA0_0] for example...
  687.  
  688. [standard_JAMMA0_0]
  689. PUSH1 = 29
  690. PUSH2 = 56
  691. PUSH3 = 57
  692. PUSH4 = 42
  693. PUSH5 = 44
  694. PUSH6 = 0
  695. PUSH7 = 0
  696. PUSH8 = 0
  697. SERVICE = 0
  698. START = 2
  699. COIN = 6
  700. DIGITALUP = 200
  701. DIGITALDOWN = 208
  702. DIGITALLEFT = 203
  703. DIGITALRIGHT = 205
  704. ANALOGUP = 0
  705. ANALOGDOWN = 0
  706. ANALOGLEFT = 0
  707. ANALOGRIGHT = 0
  708. ANALOGUP2 = 0
  709. ANALOGDOWN2 = 0
  710. ANALOGLEFT2 = 0
  711. ANALOGRIGHT2 = 0
  712.  
  713. [standard_JAMMA0_1]
  714. PUSH1 = 30
  715. PUSH2 = 31
  716. PUSH3 = 16
  717. PUSH4 = 17
  718. PUSH5 = 23
  719. PUSH6 = 0
  720. PUSH7 = 0
  721. PUSH8 = 0
  722. SERVICE = 0
  723. START = 3
  724. COIN = 7
  725. DIGITALUP = 19
  726. DIGITALDOWN = 33
  727. DIGITALLEFT = 32
  728. DIGITALRIGHT = 34
  729. ANALOGUP = 0
  730. ANALOGDOWN = 0
  731. ANALOGLEFT = 0
  732. ANALOGRIGHT = 0
  733. ANALOGUP2 = 0
  734. ANALOGDOWN2 = 0
  735. ANALOGLEFT2 = 0
  736. ANALOGRIGHT2 = 0
  737.  
  738. ###END CHANGES FOR DEMUL 57 FIX
  739. ###END CHANGES FOR DEMUL 57 FIX
  740. ###END CHANGES FOR DEMUL 57 FIX
  741.  
  742.  
  743. [driving_ATOMISWAVE0_0]
  744. UP = 200
  745. DOWN = 208
  746. LEFT = 203
  747. RIGHT = 205
  748. SHOT1 = 29
  749. SHOT2 = 56
  750. SHOT3 = 57
  751. SHOT4 = 42
  752. SHOT5 = 44
  753. START = 2
  754. COIN = 6
  755.  
  756. [driving_ATOMISWAVE0_1]
  757. UP = 19
  758. DOWN = 33
  759. LEFT = 32
  760. RIGHT = 34
  761. SHOT1 = 30
  762. SHOT2 = 31
  763. SHOT3 = 16
  764. SHOT4 = 17
  765. SHOT5 = 23
  766. START = 3
  767. COIN = 7
  768.  
  769. [driving_JAMMA0_0]
  770. PUSH1 = 29
  771. PUSH2 = 56
  772. PUSH3 = 57
  773. PUSH4 = 42
  774. PUSH5 = 44
  775. PUSH6 = 45
  776. PUSH7 = 46
  777. PUSH8 = 9
  778. SERVICE = 0
  779. START = 2
  780. COIN = 6
  781. DIGITALUP = 0
  782. DIGITALDOWN = 0
  783. DIGITALLEFT = 203
  784. DIGITALRIGHT = 205
  785. ANALOGUP = 9
  786. ANALOGDOWN = 5
  787. ANALOGLEFT = 0
  788. ANALOGRIGHT = 0
  789. ANALOGUP2 = 0
  790. ANALOGDOWN2 = 0
  791. ANALOGLEFT2 = 0
  792. ANALOGRIGHT2 = 0
  793.  
  794. [driving_JAMMA0_1]
  795. PUSH1 = 30
  796. PUSH2 = 31
  797. PUSH3 = 16
  798. PUSH4 = 17
  799. PUSH5 = 23
  800. PUSH6 = 37
  801. PUSH7 = 36
  802. PUSH8 = 47
  803. SERVICE = 0
  804. START = 3
  805. COIN = 7
  806. DIGITALUP = 0
  807. DIGITALDOWN = 0
  808. DIGITALLEFT = 32
  809. DIGITALRIGHT = 34
  810. ANALOGUP = 47
  811. ANALOGDOWN = 22
  812. ANALOGLEFT = 0
  813. ANALOGRIGHT = 0
  814. ANALOGUP2 = 0
  815. ANALOGDOWN2 = 0
  816. ANALOGLEFT2 = 0
  817. ANALOGRIGHT2 = 0
  818.  
  819.  
  820. [fps_ATOMISWAVE0_0]
  821. UP = 200
  822. DOWN = 208
  823. LEFT = 203
  824. RIGHT = 205
  825. SHOT1 = 29
  826. SHOT2 = 56
  827. SHOT3 = 57
  828. SHOT4 = 42
  829. SHOT5 = 44
  830. START = 2
  831. COIN = 6
  832.  
  833. [fps_ATOMISWAVE0_1]
  834. UP = 19
  835. DOWN = 33
  836. LEFT = 32
  837. RIGHT = 34
  838. SHOT1 = 30
  839. SHOT2 = 31
  840. SHOT3 = 16
  841. SHOT4 = 17
  842. SHOT5 = 23
  843. START = 3
  844. COIN = 7
  845.  
  846. [ggxstyle_ATOMISWAVE0_0]
  847. #UP = 200
  848. #DOWN = 208
  849. #LEFT = 203
  850. #RIGHT = 205
  851. #SHOT1 = 46
  852. #SHOT2 = 18
  853. #SHOT3 = 44
  854. #SHOT4 = 20
  855. #SHOT5 = 21
  856. #START = 38
  857. #COIN = 39
  858.  
  859. UP = 200
  860. DOWN = 208
  861. LEFT = 203
  862. RIGHT = 205
  863. SHOT1 = 29
  864. SHOT2 = 56
  865. SHOT3 = 57
  866. SHOT4 = 42
  867. SHOT5 = 44
  868. START = 2
  869. COIN = 6
  870.  
  871.  
  872. [ggxstyle_ATOMISWAVE0_1]
  873. #UP = 72
  874. #DOWN = 76
  875. #LEFT = 75
  876. #RIGHT = 77
  877. #SHOT1 = 50
  878. #SHOT2 = 47
  879. #SHOT3 = 48
  880. #SHOT4 = 24
  881. #SHOT5 = 25
  882. #START = 19
  883. #COIN = 51
  884.  
  885. UP = 19
  886. DOWN = 33
  887. LEFT = 32
  888. RIGHT = 34
  889. SHOT1 = 30
  890. SHOT2 = 31
  891. SHOT3 = 16
  892. SHOT4 = 17
  893. SHOT5 = 23
  894. START = 3
  895. COIN = 7
  896.  
  897.  
  898. [reverse_ATOMISWAVE0_0]
  899. UP = 200
  900. DOWN = 208
  901. LEFT = 203
  902. RIGHT = 205
  903. SHOT1 = 29
  904. SHOT2 = 56
  905. SHOT3 = 57
  906. SHOT4 = 42
  907. SHOT5 = 44
  908. START = 2
  909. COIN = 6
  910.  
  911. [reverse_ATOMISWAVE0_1]
  912. UP = 19
  913. DOWN = 33
  914. LEFT = 32
  915. RIGHT = 34
  916. SHOT1 = 30
  917. SHOT2 = 31
  918. SHOT3 = 16
  919. SHOT4 = 17
  920. SHOT5 = 23
  921. START = 3
  922. COIN = 7
  923.  
  924. [samba_ATOMISWAVE0_0]
  925. UP = 200
  926. DOWN = 208
  927. LEFT = 203
  928. RIGHT = 205
  929. SHOT1 = 29
  930. SHOT2 = 56
  931. SHOT3 = 57
  932. SHOT4 = 42
  933. SHOT5 = 44
  934. START = 2
  935. COIN = 6
  936.  
  937. [samba_ATOMISWAVE0_1]
  938. UP = 19
  939. DOWN = 33
  940. LEFT = 32
  941. RIGHT = 34
  942. SHOT1 = 30
  943. SHOT2 = 31
  944. SHOT3 = 16
  945. SHOT4 = 17
  946. SHOT5 = 23
  947. START = 3
  948. COIN = 7
  949.  
  950. [sfstyle_ATOMISWAVE0_0]
  951. #UP = 200
  952. #DOWN = 208
  953. #LEFT = 203
  954. #RIGHT = 205
  955. #SHOT1 = 46
  956. #SHOT2 = 45
  957. #SHOT3 = 21
  958. #SHOT4 = 18
  959. #SHOT5 = 44
  960. #START = 38
  961. #COIN = 39
  962.  
  963. UP = 200
  964. DOWN = 208
  965. LEFT = 203
  966. RIGHT = 205
  967. SHOT1 = 29
  968. SHOT2 = 56
  969. SHOT3 = 57
  970. SHOT4 = 42
  971. SHOT5 = 44
  972. START = 2
  973. COIN = 6
  974.  
  975.  
  976. [sfstyle_ATOMISWAVE0_1]
  977. #UP = 72
  978. #DOWN = 76
  979. #LEFT = 75
  980. #RIGHT = 77
  981. #SHOT1 = 50
  982. #SHOT2 = 49
  983. #SHOT3 = 25
  984. #SHOT4 = 47
  985. #SHOT5 = 48
  986. #START = 19
  987. #COIN = 51
  988.  
  989. UP = 19
  990. DOWN = 33
  991. LEFT = 32
  992. RIGHT = 34
  993. SHOT1 = 30
  994. SHOT2 = 31
  995. SHOT3 = 16
  996. SHOT4 = 17
  997. SHOT5 = 23
  998. START = 3
  999. COIN = 7
  1000.  
  1001.  
  1002.  
  1003. # Rom Settings:
  1004. [anmlbskt]
  1005. System = atomiswave
  1006. LongRomName=Animal Basket
  1007. ScreenTimeout= 5555
  1008. LoadDecrypted= false
  1009. Controls = standard
  1010. Emulator = demul57
  1011. Demul57Plugin = gpuDX11
  1012.  
  1013. [demofist]
  1014. System = atomiswave
  1015. LongRomName=Demolish Fist
  1016. ScreenTimeout= 5555
  1017. LoadDecrypted= false
  1018. Controls = standard
  1019. Emulator = demul
  1020. Demul57Plugin = gpuDX11
  1021.  
  1022. [dirtypig]
  1023. System = atomiswave
  1024. LongRomName=Dirty Pigskin Football
  1025. ScreenTimeout= 5555
  1026. LoadDecrypted= false
  1027. Controls = standard
  1028. Emulator = demul57
  1029. Demul57Plugin = gpuDX11
  1030.  
  1031. [dolphin]
  1032. System = atomiswave
  1033. LongRomName=Dolphin Blue
  1034. ScreenTimeout= 5555
  1035. LoadDecrypted= false
  1036. Controls = standard
  1037. Emulator = demul
  1038. Demul57Plugin = gpuDX11
  1039.  
  1040. [fotns]
  1041. System = atomiswave
  1042. LongRomName=Fist of the North Star
  1043. ScreenTimeout= 5555
  1044. LoadDecrypted= false
  1045. Controls = sfstyle
  1046. Emulator = demul
  1047. Demul57Plugin = gpuDX11
  1048.  
  1049. [ftspeed]
  1050. System = atomiswave
  1051. LongRomName=Faster Than Speed
  1052. ScreenTimeout= 5555
  1053. LoadDecrypted= false
  1054. Controls = driving
  1055. Emulator = demul57
  1056. Demul57Plugin = gpuDX11
  1057.  
  1058. [ggisuka]
  1059. System = atomiswave
  1060. LongRomName=Guilty Gear Isuka
  1061. ScreenTimeout= 5555
  1062. LoadDecrypted= false
  1063. Controls = ggxstyle
  1064. Emulator = demul
  1065. Demul57Plugin = gpuDX11
  1066.  
  1067. [ggx15]
  1068. System = atomiswave
  1069. LongRomName=Guilty Gear X ver. 1.5
  1070. ScreenTimeout= 5555
  1071. LoadDecrypted= false
  1072. Controls = standard
  1073. Emulator = demul57
  1074. Demul57Plugin = gpuDX11
  1075.  
  1076. [kofxi]
  1077. System = atomiswave
  1078. LongRomName=King of Fighters 11
  1079. ScreenTimeout= 5555
  1080. LoadDecrypted= false
  1081. Controls = standard
  1082. Emulator = demul57
  1083. Demul57Plugin = gpuDX11
  1084.  
  1085. [kofnw]
  1086. System = atomiswave
  1087. LongRomName=King of Fighters NeoWave
  1088. ScreenTimeout= 5555
  1089. LoadDecrypted= false
  1090. Controls = sfstyle
  1091. Emulator = demul
  1092. Demul57Plugin = gpuDX11
  1093.  
  1094. [kofnwj]
  1095. System = atomiswave
  1096. LongRomName=King of Fighters NeoWave (JAP)
  1097. ScreenTimeout= 5555
  1098. LoadDecrypted= false
  1099. Controls = sfstyle
  1100. Emulator = demul
  1101. Demul57Plugin = gpuDX11
  1102.  
  1103. [kov7sprt]
  1104. System = atomiswave
  1105. LongRomName=Knights of Valor - The Seven Spirits
  1106. ScreenTimeout= 5555
  1107. LoadDecrypted= false
  1108. Controls = standard
  1109. Emulator = demul
  1110. Demul57Plugin = gpuDX11
  1111.  
  1112. [maxspeed]
  1113. System = atomiswave
  1114. LongRomName=Maximum Speed
  1115. ScreenTimeout= 5555
  1116. LoadDecrypted= false
  1117. Controls = standard
  1118. Emulator = demul57
  1119. Demul57Plugin = gpuDX11
  1120.  
  1121. [mslug6]
  1122. System = atomiswave
  1123. LongRomName=Metal Slug 6
  1124. ScreenTimeout= 5555
  1125. LoadDecrypted= false
  1126. Controls = standard
  1127. Emulator = demul57
  1128. Demul57Plugin = gpuDX11
  1129.  
  1130. [ngbc]
  1131. System = atomiswave
  1132. LongRomName=Neo-Geo Battle Coliseum
  1133. ScreenTimeout= 5555
  1134. LoadDecrypted= false
  1135. Controls = standard
  1136. Emulator = demul57
  1137. Demul57Plugin = gpuDX11
  1138.  
  1139. [rangrmsn]
  1140. System = atomiswave
  1141. LongRomName=Ranger Mission
  1142. ScreenTimeout= 5555
  1143. LoadDecrypted= false
  1144. Controls = standard
  1145. Emulator = demul
  1146. Demul57Plugin = gpuDX11
  1147.  
  1148. [rumblef]
  1149. System = atomiswave
  1150. LongRomName=The Rumble Fish
  1151. ScreenTimeout= 5555
  1152. LoadDecrypted= false
  1153. Controls = sfstyle
  1154. Emulator = demul
  1155. Demul57Plugin = gpuDX11
  1156.  
  1157. [rumblef2]
  1158. System = atomiswave
  1159. LongRomName=Rumble Fish 2, The
  1160. ScreenTimeout= 5555
  1161. LoadDecrypted= false
  1162. Controls = standard
  1163. Emulator = demul57
  1164. Demul57Plugin = gpuDX11
  1165.  
  1166. [salmankt]
  1167. System = atomiswave
  1168. LongRomName=Salary Man Kintaro
  1169. ScreenTimeout= 5555
  1170. LoadDecrypted= false
  1171. Controls = standard
  1172. Emulator = demul57
  1173. Demul57Plugin = gpuDX11
  1174.  
  1175. [samsptk]
  1176. System = atomiswave
  1177. LongRomName=Samurai Spirits Tenkaichi Kenkakuden
  1178. ScreenTimeout= 5555
  1179. LoadDecrypted= false
  1180. Controls = standard
  1181. Emulator = demul57
  1182. Demul57Plugin = gpuDX11
  1183.  
  1184. [sprtshot]
  1185. System = atomiswave
  1186. LongRomName=Sports Shooting USA
  1187. ScreenTimeout= 5555
  1188. LoadDecrypted= false
  1189. Controls = standard
  1190. Emulator = demul
  1191. Demul57Plugin = gpuDX11
  1192.  
  1193. [vfurlong]
  1194. System = atomiswave
  1195. LongRomName=Net Select Keiba Victory Furlong
  1196. ScreenTimeout= 7000
  1197. LoadDecrypted= false
  1198. Controls = standard
  1199. Emulator = demul57
  1200. Demul57Plugin = gpuDX11
  1201.  
  1202. [xtrmhunt]
  1203. System = atomiswave
  1204. LongRomName=Extreme Hunting
  1205. ScreenTimeout= 5555
  1206. LoadDecrypted= false
  1207. Controls = standard
  1208. Emulator = demul
  1209. Demul57Plugin = gpuDX11
  1210.  
  1211. [xtrmhnt2]
  1212. System = atomiswave
  1213. LongRomName=Extreme Hunting 2
  1214. ScreenTimeout= 5555
  1215. LoadDecrypted= false
  1216. Controls = lightgun
  1217. Emulator = demul
  1218. Demul57Plugin = gpuDX11
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement