RetroArch Module

austin585

New member
Supporter
RL Member
figured it about time I registered here. thanks for all the great work guys!!

Here is a copy of the latest version of my RA module. It seems to get updated almost every week with new systems and changes that seem to come out so thought it best to keep it here so others may use it as they wish. Hope you guys dont mind, just trying to help out.

Code:
MEmu = RetroArch
MEmuV =  v1.0.0.3-Beta
MURL = http://themaister.net/retroarch.html
MAuthor = djvj/austin585
MVersion = 2.1.9.1
MCRC = 5CE663A8
iCRC = 14E7C268
MID = 635038268922229162
MSystem = "Atari 2600","Atari 5200","Atari 7800","Atari Jaguar","Atari Lynx","Bandai Wonderswan","Bandai Wonderswan Color","Final Burn Alpha","MAME","NEC PC Engine","NEC PC Engine-CD","NEC TurboGrafx-16","NEC SuperGrafx","NEC TurboGrafx-CD","Nintendo 64","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Color","Nintendo Game Boy Advance","Nintendo Super Game Boy","Nintendo Virtual Boy","Nintendo Super Famicom","Panasonic 3DO","Sega 32X","Sega CD","Sega Game Gear","Sega Genesis","Sega Master System","Sega Mega Drive","Sega Pico","Sega Saturn","Sony PlayStation","Sega SG-1000","SNK Neo Geo","SNK Neo Geo Pocket","SNK Neo Geo Pocket Color","Super Nintendo Entertainment System","Sony PSP","Atari ST","Microsoft MSX","Commodore Amiga","Nintendo DS"
;----------------------------------------------------------------------------
; Notes:
; If the emu doesn't load and you get no error, usually this means the LibRetro DLL is not working!
; Devs stated they will never add support for mounted images (like via DT)
; Fullscreen is controlled via the module setting in HLHQ
; This module uses the CLI version of RetroArch (retroarch.exe), not the GUI (retroarch-phoenix.exe).
; The emu may make a mouse cursor appear momentarily during launch, MouseMove and hide_cursor seem to have no effect
; Enable 7z support for archived roms
; Available CLI options: https://github.com/PyroFilmsFX/iOS/blob/master/docs/retroarch.1
;
; LibRetro DLLs:
; LibRetro DLLs come with the emu, but here is another source for them: http://forum.themaister.net/
; Whatever cores you decide to use, make sure they are extracted anywhere in your Emu_Path folder (place them in a LibRetros subfolder if you like). The module will find and load the core you choose for each system.
; You can find supported cores that Retroarch supports simply by downloading them from the "retroarch-phoenix.exe" or by visiting here: https://github.com/libretro/libretro.github.com/wiki/Supported-cores
; Some good discussion on cores and filters: http://forum.themaister.net/viewtopic.php?id=270
; The module's LibRetro settings in HLHQ need to match the name of that core for each system you use this emu. Read the tooltips to see the default one used when they are not customized by you.
;
; SRM files:
; srm are stored in a "srm" dir in the emu folder. Each system ran through retroarch gets its own folder inside srm
;
; Save states:
; Save states are stored in a "save" dir in the emu folder. Each system ran through retroarch gets its own folder inside save
;
; Config files:
; RetroArch will use per-system cfg files named to match your System Name. The global one is "retroarch.cfg" but the module will search for cfg files in any of the emu's subfolders. If system ones exist, they take precedence over retroarch.cfg.
; This allows different settings for each system you use this emulator for. If you want all systems to use the same retroarch.cfg, do not have any system named cfg files, or just create ones for the systems you want custom settings.
;
; System Specific Notes:
; Nintendo Famicom Disk System - Requires disksys.rom be placed in the folder you define as system_directory in the RetroArch's cfg.
; Sega CD - Requires "bios_CD_E.bin", "bios_CD_J.bin", "bios_CD_U.bin" all be placed in the folder you define as system_directory in the RetroArch's cfg.
; Super Nintendo Entertainment System - requires split all 10 dsp# & st### roms all be placed in the folder you define as system_directory in the RetroArch's cfg. Many games, like Super Mario Kart require these.
; NEC TurboGrafx-CD - Requires "syscard3.pce" be placed in the folder you define as system_directory in the RetroArch's cfg.
; Nintendo Super Game Boy - Set the Module setting in HLHQ SuperGameBoy to true to enable a system or only a rom to use SGB mode. This is not needed if your systemName is set to the official name of "Nintendo Super Game Boy". Requires "sgb.boot.rom" and "Super Game Boy (World).sfc" to be placed in the folder you define as system_directory in the RetroArch's cfg. This is needed if you want to use Super game boy mode and color palettes. Also requires using the latest bsnes core. Not all games support SGB mode.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

; This object controls how the module reacts to different systems. RetroArch can play a lot of systems, but needs to know what system you want to run, so this module has to adapt.
mType := Object("Microsoft MSX","Libretro_BLUEMSX","Commodore Amiga","LibRetro_PUAE","Atari 2600","LibRetro_2600","Atari Jaguar","LibRetro_JAG","Atari 5200","LibRetro_5200","Atari 7800","LibRetro_7800","Atari Lynx","LibRetro_LYNX","Bandai Wonderswan","LibRetro_WSAN","Bandai Wonderswan Color","LibRetro_WSANC","Final Burn Alpha","LibRetro_FBA","MAME","LibRetro_MAME","NEC PC Engine","LibRetro_PCE","NEC PC Engine-CD","LibRetro_PCECD","NEC SuperGrafx","LibRetro_SGFX","NEC TurboGrafx-16","LibRetro_TG16","NEC TurboGrafx-CD","LibRetro_TGCD","Nintendo 64","LibRetro_N64","Nintendo Entertainment System","LibRetro_NES","Nintendo Famicom","LibRetro_NFAM","Nintendo Famicom Disk System","LibRetro_NFDS","Nintendo Game Boy","LibRetro_GB","Nintendo Game Boy Color","LibRetro_GBC","Nintendo Game Boy Advance","LibRetro_GBA","Nintendo Super Famicom","LibRetro_NSF","Nintendo Super Game Boy","LibRetro_SGB","Nintendo Virtual Boy","LibRetro_NVB","Panasonic 3DO","LibRetro_PAN","Sega 32X","LibRetro_32X","Sega CD","LibRetro_SCD","Sega Game Gear","LibRetro_GG","Sega Genesis","LibRetro_GEN","Sega Mega Drive","LibRetro_GEN","Sega Master System","LibRetro_SMS","Sega Pico","LibRetro_PICO","Sega Saturn","LibRetro_SS","Sony PlayStation","LibRetro_PSX","Sega SG-1000","LibRetro_SG1K","SNK Neo Geo","LibRetro_NEO","SNK Neo Geo Pocket","LibRetro_NGP","SNK Neo Geo Pocket Color","LibRetro_NGPC","Super Nintendo Entertainment System","LibRetro_SNES","Sony PSP","LibRetro_PPSSPP","Atari ST","LibRetro_HATARI","Nintendo DS","Libretro_DESMUME")
ident := mType[systemName]	; search object for the systemName identifier Retroarch uses for its cores
If !ident
	ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this " . MEmu . " module: " . moduleName)

settingsFile := modulePath . "\" . moduleName . ".ini"
Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
hideConsole := IniReadCheck(settingsFile, "Settings", "HideConsole","true",,1)
; SystemConfigs := IniReadCheck(settingsFile, "Settings", "SystemConfigs","true",,1)			; If true, 
libRetroFolder := IniReadCheck(settingsFile, "Settings", "LibRetroFolder", emuPath,,1)
LibRetro_2600 := IniReadCheck(settingsFile, "Settings", "LibRetro_2600","stella_libretro",,1)
LibRetro_5200 := IniReadCheck(settingsFile, "Settings", "LibRetro_5200","mess_libretro",,1)
LibRetro_7800 := IniReadCheck(settingsFile, "Settings", "LibRetro_7800","prosystem_libretro",,1)
LibRetro_32X := IniReadCheck(settingsFile, "Settings","LibRetro_32X","genesis_plus_gx_libretro",,1)
LibRetro_FBA := IniReadCheck(settingsFile, "Settings", "LibRetro_FBA","fb_alpha_libretro",,1)
LibRetro_GB := IniReadCheck(settingsFile, "Settings", "LibRetro_GB","gambatte_libretro",,1)
LibRetro_GBC := IniReadCheck(settingsFile, "Settings", "LibRetro_GBC","gambatte_libretro",,1)
LibRetro_GBA := IniReadCheck(settingsFile, "Settings", "LibRetro_GBA","vba_next_libretro",,1)
LibRetro_GEN := IniReadCheck(settingsFile, "Settings", "LibRetro_GEN","genesis_plus_gx_libretro",,1)
LibRetro_GG := IniReadCheck(settingsFile, "Settings", "LibRetro_GG","genesis_plus_gx_libretro",,1)
LibRetro_JAG := IniReadCheck(settingsFile, "Settings", "LibRetro_JAG","virtualjaguar_libretro",,1)
LibRetro_LYNX := IniReadCheck(settingsFile, "Settings", "LibRetro_LYNX","handy_libretro",,1)
LibRetro_MAME := IniReadCheck(settingsFile, "Settings", "LibRetro_MAME","mame_libretro",,1)
LibRetro_N64 := IniReadCheck(settingsFile, "Settings", "LibRetro_N64","mupen64plus_libretro",,1)
LibRetro_NEO := IniReadCheck(settingsFile, "Settings", "LibRetro_NEO","mame_libretro",,1)
LibRetro_NES := IniReadCheck(settingsFile, "Settings", "LibRetro_NES","nestopia_libretro",,1)
LibRetro_NFAM := IniReadCheck(settingsFile, "Settings", "LibRetro_NFAM","nestopia_libretro",,1)
LibRetro_NFDS := IniReadCheck(settingsFile, "Settings", "LibRetro_NFDS","nestopia_libretro",,1)
LibRetro_NSF := IniReadCheck(settingsFile, "Settings", "LibRetro_NSF","bsnes_balanced_libretro",,1)
LibRetro_NVB := IniReadCheck(settingsFile, "Settings", "LibRetro_NVB","mednafen_vb_libretro",,1)
LibRetro_NGP := IniReadCheck(settingsFile, "Settings", "LibRetro_NGP","mednafen_ngp_libretro",,1)
LibRetro_NGPC := IniReadCheck(settingsFile, "Settings", "LibRetro_NGPC","mednafen_ngp_libretro",,1)
LibRetro_PAN := IniReadCheck(settingsFile, "Settings", "LibRetro_PAN","4do_libretro",,1)
LibRetro_PCE := IniReadCheck(settingsFile, "Settings", "LibRetro_PCE","mednafen_pce_fast_libretro",,1)
LibRetro_PCECD := IniReadCheck(settingsFile, "Settings", "LibRetro_PCECD","mednafen_pce_fast_libretro",,1)
LibRetro_PICO := IniReadCheck(settingsFile, "Settings", "LibRetro_PICO","picodrive_libretro",,1)
LibRetro_PSX := IniReadCheck(settingsFile, "Settings", "LibRetro_PSX","mednafen_psx_libretro",,1)
LibRetro_SCD := IniReadCheck(settingsFile, "Settings", "LibRetro_SCD","genesis_plus_gx_libretro",,1)
LibRetro_SG1K := IniReadCheck(settingsFile, "Settings", "LibRetro_SG1K","genesis_plus_gx_libretro",,1)
LibRetro_SGB := IniReadCheck(settingsFile, "Settings", "LibRetro_SGB","bsnes_balanced_libretro",,1)
LibRetro_SMS := IniReadCheck(settingsFile, "Settings", "LibRetro_SMS","genesis_plus_gx_libretro",,1)
LibRetro_SNES := IniReadCheck(settingsFile, "Settings", "LibRetro_SNES","bsnes_balanced_libretro",,1)
LibRetro_SGFX := IniReadCheck(settingsFile, "Settings", "LibRetro_SGFX","mednafen_pce_fast_libretro",,1)
LibRetro_SS := IniReadCheck(settingsFile, "Settings", "LibRetro_SS","yabause_libretro",,1)
LibRetro_TG16 := IniReadCheck(settingsFile, "Settings", "LibRetro_TG16","mednafen_pce_fast_libretro",,1)
LibRetro_TGCD := IniReadCheck(settingsFile, "Settings", "LibRetro_TGCD","mednafen_pce_fast_libretro",,1)
LibRetro_WSAN := IniReadCheck(settingsFile, "Settings", "LibRetro_WSAN","mednafen_wswan_libretro",,1)
LibRetro_WSANC := IniReadCheck(settingsFile, "Settings", "LibRetro_WSANC","mednafen_wswan_libretro",,1)
LibRetro_PPSSPP := IniReadCheck(settingsFile, "Settings", "LibRetro_PPSSPP","ppsspp_libretro",,1)
LibRetro_HATARI := IniReadCheck(settingsFile, "Settings", "LibRetro_HATARI","hatari_libretro",,1)
LibRetro_PUAE := IniReadCheck(settingsFile, "Settings", "LibRetro_PUAE","puae_libretro",,1)
LibRetro_BLUEMSX := IniReadCheck(settingsFile, "Settings", "LibRetro_BLUEMSX","bluemsx_libretro",,1)
Libretro_DESMUME := IniReadCheck(settingsFile, "Settings", "LibRetro_DESMUME","desmume_libretro",,1)
superGB := IniReadCheck(settingsFile, systemName . "|" . romName, "SuperGameBoy", "false",,1)
libRetroFolder := GetFullName(libRetroFolder)

retroArchSystem := systemName

If (ident = "LibRetro_SGB" || If superGB = "true")	; if system or rom is set to use Super Game Boy
{	superGB = true	; setting this just in case it's false and the system is Nintendo Super Game Boy
	sgbRomPath := CheckFile(emuPath . "\system\Super Game Boy (World).sfc","Could not find the rom required for Super Game Boy support. Make sure the rom ""Super Game Boy (World).sfc"" is located in: " . emupath . "\system")
	CheckFile(emuPath . "\system\sgb.boot.rom","Could not find the bios required for Super Game Boy support. Make sure the bios ""sgb.boot.rom"" is located in: " . emupath . "\system")
	ident := "LibRetro_SGB"	; switching to Super Game Boy mode
	retroArchSystem := "Nintendo Super Game Boy"
}

; Find the cfg file to use
Loop, %emuPath%\*.cfg,,1 ; loop through all folder in emuPath
	If (A_LoopFileName = retroArchSystem . ".cfg") {
		sysRetroCfg := A_LoopFileLongPath
		Break	; retroArchSystem configs are preferred, so break after one is found
	} Else If (A_LoopFileName = "retroarch.cfg")
		globalRetroCfg := A_LoopFileLongPath
retroCFGFile := If sysRetroCfg ? sysRetroCfg : globalRetroCfg
Log(MEmu . " is using " . retroCFGFile . " as it's config file.")

; Find the dll for this system
Loop, %libRetroFolder%\*.dll,,1 ; loop through all folder in emuPath looking for the ident dll
	If (A_LoopFileName = %ident% . ".dll") {
		libDll := A_LoopFileLongPath
		Break
	}
If !libDll
	ScriptError("Your " . ident . " dll is set to " . %ident% . " but could not locate this file in any folder inside:`n" . libRetroFolder)

If ident In LibRetro_NFDS,LibRetro_SCD,LibRetro_TGCD,LibRetro_PCECD
{	retroCFG := LoadProperties(retroCFGFile)	; load the config into memory
	retroSysDir := ReadProperty(retroCFG,"system_directory")	; read value
	retroSysDir := ConvertRetroCFGKey(retroSysDir)	; remove dbl quotes
	StringLeft, retroSysDirLeft, retroSysDir, 2
	If (retroSysDirLeft = ":\") {	; if retroarch is set to use a default folder
		StringTrimLeft, retroSysDir, retroSysDir, 1
		Log("Module - RetroArch is using a relative system path: """ . retroSysDir . """")
		retroSysDir := emuPath . retroSysDir
	}
	If !retroSysDir
		ScriptError("RetroArch requires you to set your system_directory and place bios rom(s) in there for """ . retroArchSystem . """ to function. Please do this first by running ""retroarch-phoenix.exe"" manually.")
}

7z(romPath, romName, romExtension, 7zExtractPath)

If ident = LibRetro_NFDS	; Nintendo Famicom Disk System
{	IfNotExist, %retroSysDir%disksys.rom
		ScriptError("RetroArch requires ""disksys.rom"" for " . retroArchSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If ident = LibRetro_SCD	; Sega CD
{	If romExtension Not In .bin,.cue,.iso
		ScriptError("RetroArch only supports Sega CD games in bin|cue|iso format. It does not support:`n" . romExtension)
	IfNotExist, %retroSysDir%bios_CD_E.bin
		ScriptError("RetroArch requires ""bios_CD_E.bin"" for " . retroArchSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
	IfNotExist, %retroSysDir%bios_CD_U.bin
		ScriptError("RetroArch requires ""bios_CD_U.bin"" for " . retroArchSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
	IfNotExist, %retroSysDir%bios_CD_J.bin
		ScriptError("RetroArch requires ""bios_CD_J.bin"" for " . retroArchSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
} Else If ident in LibRetro_PCECD,LibRetro_TGCD	; NEC PC Engine-CD and NEC TurboGrafx-CD
{	If romExtension Not In .cue,.ccd
		ScriptError("RetroArch only supports " . retroArchSystem . " games in cue format. It does not support:`n" . romExtension)
	IfNotExist, %retroSysDir%syscard3.pce
		ScriptError("RetroArch requires ""syscard3.pce"" for " . retroArchSystem . " but could not find it in your system_directory: """ . retroSysDir . """")
}

; WriteProperty(retroCFGFile,"system_directory","""D:\test""")	; write a new value to the RetroArch cfg file
; SaveProperty()	; save RetroArch cfg file to disk

BezelStart()

fullscreen := (If fullscreen = "true" ? ("-f") : (""))
srmPath := emuPath . "\srm\" . retroArchSystem	; path for this system's srm files
saveStatePath := emuPath . "\save\" . retroArchSystem	; path for this system's save state files

IfNotExist, %srmPath%
	FileCreateDir, %srmPath% ; creating srm dir if it doesn't exist
IfNotExist, %saveStatePath%
	FileCreateDir, %saveStatePath% ; creating save dir if it doesn't exist

Run(executable . " """ . (If superGB = "true" ? sgbRomPath . """ -g """ : "") . romPath . "\" . romName . romExtension . """ " . fullscreen . " -c """ . retroCFGFile . """ -L """ . libDll . """ -s """ . srmPath . "\" . romName . ".srm"" -S """ . saveStatePath . "\" . romName . ".state""", emuPath, "Hide")

WinWait("RetroArch ahk_class RetroArch")
WinWaitActive("RetroArch ahk_class RetroArch")

If hideConsole = true
	WinSet, Transparent, On, ahk_class ConsoleWindowClass	; makes the console window transparent so you don't see it on exit

BezelDraw()
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


; Used to convert between RetroArch keys and usable data
ConvertRetroCFGKey(txt,direction="read"){
	If direction = read
	{	StringTrimLeft,newtxt,txt,1	; removes the " from the left of the txt
		StringTrimRight,newtxt,newtxt,1	; removes the " from the right of the txt
		If InStr(newtxt,"/")
			StringReplace,newtxt,newtxt,/,\,1	; replaces all forward slashes with backslashes
	} Else If direction = write
	{	newtxt = "%txt%"	; wraps the txt with ""
		If InStr(newtxt,"\")
			StringReplace,newtxt,newtxt,\,/,1	; replaces all backslashes with forward slashes
	} Else
		ScriptError("Not a valid use of ConvertRetroCFGKey. Only ""read"" or ""write"" are supported.")
	Log("ConvertRetroCFGKey - Converted " . txt . " to " . newtxt,4)
	Return newtxt
}

CloseProcess:
	FadeOutStart()
	; Send !{F4}
	WinClose("RetroArch ahk_class RetroArch")
Return
 

djvj

Administrator
Staff member
Developer
Thanks Austin and welcome!

I have been keeping it updated on our beta too, so the changes will be official on the next update.
 

Boltzmann

New member
Supporter
RL Member
Thanks for the module, man. I'm eager to try Retroarch with several systems; alas, real life has an annoying tendency to get in the way... But maybe this is the kind of news that'll give me the necessary impetus to try it out in the weekend. Or maybe I should wait until the Retroarch folks release the official version 1.1.
 

Fromlostdays

Moderator
Moderator
Supporter
RL Member
Boltz, truth be told I've been trying the 1003 betas and they are pretty buggy and with the advent of multiple guis I'd suggest you get to know it on a somewhat older more stable version. The good news is you can still check out some of the new features, like psp support. I personally recommend getting the 9-18-2014 version as I've used it for a lot of systems with no problems. You can download these versions here: https://www.dropbox.com/sh/91sakv0qdyxjx9f/AAAkDR0eyJhQDujQO8OQ7YJFa/old?dl=0

Also, here's a basic tutorial that should get you running pretty quick: http://www.hyperspin-fe.com/forum/showthread.php?36930-Complete-RetroArch-Guide-For-Noobs

And Austin, thanks for the module, and getting me hype about this program.
 

djvj

Administrator
Staff member
Developer
Since daemon tools is not supported, it would be hard to disc swap unless the emu devs create a new method w/o resetting the machine.
 

rfancella

Super Moderator
Supporter
RL Member
Does the retroarch module support disc swap for the mednafen psx emulation?

I may be speaking out of place here, I don't know much about the Sony consoles.
I thought there really was no disc swap. Multi disc games wrote to the memory card and then you just booted the second disc?
In HS setup, would you not just exit and launch the second disc??

Thanks,
Ron
 

brolly

Administrator
Developer
PSX supports disc swapping, the console won't boot when you change discs.

Regarding Mednafen (and I guess RetroArch) the current module requires Daemon Tools for disc swapping, but it's not really necessary. It's possible to use disc swap without DT, for this Mednafen must be fed with a .m3u file which consists of all the cue files listed in order and then there's a hotkey to swap disc. This would require a bit of coding particularly to generate the .m3u file on the file, but shouldn't be too hard:
http://mednafen.sourceforge.net/documentation/#Section_multicd_games

I'm guessing this could be used on RetroArch as well.
 

cID67

Member
RL Member
Im going to look into the m3u method. i assume that is what these input options are for but haven't looked into them yet. btw, does anyone know of a game that is good for testing disk swap? maybe something that has a swap at the beginning of starting the game.

Untitled.jpg
 

brolly

Administrator
Developer
I think Disk Next is what you want, but not sure since I don't use RetroArch.

You can test with Final Fantasy 7, start with disc 2 and you get asked for disc 1 once you try to start the game.
 

cID67

Member
RL Member
so just to get this right. I need to add the .m3u as a rom extension before the cue extension in hyperlaunch. from that point, i create a text file with the cue files for all the disc for a particular game listed in order inside it. I then rename its extension to m3u. from there i put the newly created m3u file in the same place as the relevant cue files. if i run the m3u file instead of the cue files ( this should happen automatically if i set the m3u extension before the cue extension in the emulator extension box within hyperlaunch, right?) it should allow swapping from within the emulator using the assigned swap key . Is this close to correct and would it also work launching the m3u file from within a zip file as well.
 

brolly

Administrator
Developer
That would work if you want to do everything manually, but all that should be done within the module automatically. .m3u shouldn't be added as extensions and then you simply create the .m3u file on the fly in the module and send it to mednafen through CLI instead. When exiting delete the .m3u file.
 

kmoney2315

Member
RL Member
I have been using the latest retroarch module pasted above in the first post and I have a few questions. In the recent nightly builds for retroarch, for a while now the srm files get saved into the "save" folder in standalone retroarch instead of a seperate "srm" folder.
Also "Mame" core per game configs such as cfg.,nvram,diff and etc., get saved to the "save" folder also where as before, the mame per game cfg's, nvram and diff used to get stored in the system folder. I changed the line in the retroarch module which read as follows:

(srmPath := emuPath . "\srm\" . retroArchSystem ; path for this system's srm files). I changed the path to "\save\" instead of srm which was easy enough. But my question is when retroarch is ran through hyperlaunch what could be added or changed in the module so that it reads and writes Mame per game cfg.,nvram, diff's and etc. like it does in the standalone retroarch? Also another question is when I setup retroarch outside of hyperlaunch and set my retroarch savestate path to "save" it saves it to my retroarch cfg. correctly, but when I run retroarch through hyperlaunch it changes my savestate path from "save" to "default" in the retroarch cfg. and I have to setup my "save" path again everytime I run retroarch outside of hyperlaunch? Thanks for any assistance.
 
Last edited:

Fromlostdays

Moderator
Moderator
Supporter
RL Member
I may be wrong but to address the last part of your problem, have you set up per core configs for use with Hyperlaunch? It could be that Hyperlaunch is simply loading a different config than when you start RA standalone.
 

kmoney2315

Member
RL Member
I may be wrong but to address the last part of your problem, have you set up per core configs for use with Hyperlaunch? It could be that Hyperlaunch is simply loading a different config than when you start RA standalone.
Yes, I have per core configs set up in my Retroarch config folder. The strange thing is, when I save a game while playing Retroarch through hyperlaunch it still gets save to the correct save folder in Retroarch, it just changes the savestate and the save file path in my Retroarch main and per core config folder to "default" instead of "save". Even if I manually change the config folder with notepad to "save" it changes it right back to "default" when I launch a game through hyperlaunch.
I'm hoping that someone could take a look at adding something to the module so it will read the save folder for nvram and per game configs for the mame core since they are in the save folder now. It would be very useful for games like Street Fighter: 3rd Strike which saves nvram to the folder so you don't have to sit through a 70 minute boot time every time you start the game.
 

cID67

Member
RL Member
retroarch is indeed able to use m3u files to change discs. retroarch uses the eject disc option to open and close its virtual disc tray and the next key would be used to cycle between discs listed in the m3u file. I have not been able to confirm if the game actually continues after disc swapping yet do to the test disc images being corrupted when i attempted to convert there format. I hope that some day the module can be updated to make use of this somehow as I cant use mednafen to change discs on my computer because mednafen doesnt work with hyperpause on my system where as retroarch does. if you are curious as to why it doesnt work its because once hyperpause is exited mednafen doesnt return to full screen. instead its like it has become transparent. what is interesting is mednafen and hyperpause work correctly together if i have fraps running. strange.
 

cID67

Member
RL Member
I need help here. retroarch module isnt detecting my bios file for turbographics cd even though its in the correct location. retroarch detects the presence of the bios but hyperlaunch doesnt. this bios works file with mednafen. what gives?

Untitled.jpg
 

cID67

Member
RL Member
I got retroarch to load by bypassing the bios check in the module. Untitled.jpg clearly something isnt working correctly here. also, there are many more systems that are emulated through retroarch that are not included in the module so perhaps someone who knows how to create this stuff will add the support. retroarch allows these systems to integrate with hyperlaunch and hyperpause so seamlessly that i literally dont want to use anything else. no flashing when hyperlaunch is launching the emulators or any other weird launch related anomalies. its awesome. the latest beta of retroarch has fixed a bunch of stuff and its worth checking out if you havent.
 

djvj

Administrator
Staff member
Developer
Known bug fixed in the beta module.

In the module replace all
%retroSysDir%
with
%retroSysDir%\
 
Top