MEmu = Raine MEmuV = v0.64.10 MURL = http://rainemu.swishparty.co.uk/ MAuthor = brolly MVersion = 2.0.1 MCRC = B4A737F8 iCRC = 4BF75BC8 MID = 635038268907767111 MSystem = "SNK Neo Geo CD","SNK Neo Geo","SNK Neo Geo MVS","SNK Neo Geo AES" ;------------------------------------------------------------------------- ; Notes: ; First time you run the emu, it will ask you to find the Neocd.bin bios, so place it in the folder with the emulator or a "bios" subfolder. ; If you get an error "Could not open IPL.TXT", then you have one of the below problems: ; Not using a real Neo-Geo CD game (which are cd images) that contain an IPL.TXT. Do not use MAME roms otherwise you will get this error. ; ; To play MVS/AES games requires a proper rom path. The module will set the first rom path (rom_dir_0) for you automatically. ; If you want to use multiple rom paths you can do it by editing the config\raine32_sdl.cfg file and adding the paths under the Directories section ; For example to use 2 different rom paths: ; rom_dir_0 = E:\Games\SNK Neo Geo\ (DO NOT SET THIS PATH AS IT'S CONTROLLED BY THE MODULE) ; rom_dir_1 = E:\Emulators\Raine\roms\ ; ; If you don't add all your roms (both bios and games) to the cfg file then Raine will fail to load the games as it won't be able to find the rom files. ; ; The config file raine32_sdl.cfg should be in the config folder. If this file doesn't exist, start Raine change any setting and exit so it will create this file on exit ; ; Useful command line switches: ; raine32.exe -gamelist ; raine32.exe -listdsw ; raine32.exe -h ;------------------------------------------------------------------------- StartModule() BezelGUI() FadeInStart() If FileExist(modulePath . "\" . systemName . ".ini") ; use a custom systemName ini if it exists settingsFile := modulePath . "\" . systemName . ".ini" Else settingsFile := modulePath . "\" . moduleName . ".ini" If RegExMatch(systemName,"i)AES") DefaultBiosVersion := "22" Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1) ScreenWidth := IniReadCheck(settingsFile, "Settings", "ScreenWidth","",,1) ScreenHeight := IniReadCheck(settingsFile, "Settings", "ScreenHeight","",,1) BiosVersion := IniReadCheck(settingsFile, "Settings" . "|" . romName, "BiosVersion", DefaultBiosVersion,,1) ;AES should be 22 and 23 ; Setting Region If RegExMatch(romName,"i)\(Japan\)") DefaultRegion := "0" Else If RegExMatch(romName,"i)\(Europe\)") DefaultRegion := "2" Else If RegExMatch(romName,"i)\(Brazil\)") DefaultRegion := "3" Else DefaultRegion := "1" ; USA Region := IniReadCheck(settingsFile, "settings|" . romName, "Region", DefaultRegion,,1) RaineIni := CheckFile(emuPath . "\config\raine32_sdl.cfg","Cannot find raine32_sdl.cfg. Please run Raine manually and enter options menu, then exit so it is created for you: " . emuPath . "\config\raine32_sdl.cfg") BezelStart() hideEmuObj := Object("ahk_class SDL_app",1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later 7z(romPath, romName, romExtension, SevenZExtractPath) If RegExMatch(romExtension,"i)\.7z|\.rar") ScriptError("Raine only supports zip archives. Either enable 7z support, or extract your games first.") cliOptions := " -nogui" If (Fullscreen = "true") cliOptions .= " -fs 1" Else cliOptions .= " -fs 0" If (ScreenWidth) cliOptions .= " -screenx " . ScreenWidth If (ScreenHeight) cliOptions .= " -screeny " . ScreenHeight If RegExMatch(systemName,"i)AES") cliOptions .= " -cont" ; Enable continuous play If (systemName = "SNK Neo Geo CD") { cliOptions .= " -region " . Region cliOptions .= " """ . romPath . "\" . romName . romExtension . """" } Else { cliOptions .= " -g " . romName IniWrite(romPath . "\", RaineIni, "Directories", "rom_dir_0") ; Set rom path } If (!RegExMatch(systemName,"i)CD") && BiosVersion) IniWrite(BiosVersion, RaineIni, "neogeo", "bios") HideEmuStart() Run(executable . cliOptions, emuPath) WinWait("ahk_class SDL_app") WinWaitActive("ahk_class SDL_app") BezelDraw() HideEmuEnd() FadeInExit() Process("WaitClose", executable) 7zCleanUp() FadeOutExit() FadeOutExit() ExitModule() HaltEmu: WinGetPos,x,y,w,h,ahk_class SDL_app Log("RAINE - x:" . x . " y:" . y . " w:" . w . " h:" . h,5) Return RestoreEmu: If (Fullscreen = "true") { Sleep, 500 Send, {Tab} Sleep, 200 Send, {Enter} } WinGetPos,x,y,w,h,ahk_class SDL_app Log("RAINE - x:" . x . " y:" . y . " w:" . w . " h:" . h,5) Return CloseProcess: FadeOutStart() WinClose("ahk_class SDL_app") Return