djvj icon

Untitled

djvj | PRO | 01/10/16 07:28:47 PM UTC | 0 ⭐ | 1298 👁️ | Never ⏰ | []
text |

6.58 KB

|

None

|

0 👍

/

0 👎

MEmu = BizHawk
MEmuV =  v1.9.4
MURL = http://tasvideos.org/Bizhawk.html
MAuthor = djvj
MVersion = 2.0.6
MCRC = 573A594F
iCRC = 12C7D203
MID = 635146140449648195
MSystem = "Atari 2600","Atari 7800","Atari Lynx","Bandai Wonderswan","Bandai Wonderswan Color","ColecoVision","NEC PC Engine","NEC PC Engine-CD","NEC SuperGrafx","NEC TurboGrafx-16","NEC TurboGrafx-CD","Nintendo 64","Nintendo Entertainment System","Nintendo Famicom","Nintendo Famicom Disk System","Nintendo Game Boy","Nintendo Game Boy Advance","Nintendo Game Boy Color","Nintendo Super Game Boy","Samsung Gam Boy","Sega CD","Sega Game Gear","Sega Genesis","Sega SG-1000","Sega Master System","Sega Saturn","Super Nintendo Entertainment System","Texas Instruments TI-83"
;----------------------------------------------------------------------------
; Notes:
; When not using bezels, in order for Fullscreen to resume from Pause, Bizhawk must be set to its default fullscreen key of Alt+Enter
; Available CLI commands can be found @ http://tasvideos.org/Bizhawk/CommandLine.html
; Many systems require the firmware to exist in the emu's Firmware subfolder. If one of these system's cannot find the firmware, Bizhawk will error out telling you so.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
 ; This object controls how the module reacts to different systems. BizHawk can play a lot of systems, and each system changes the window title. Without knowing this title, the module doesn't know when the emu finished loading
mType := Object("Atari 2600","Atari 2600","Atari 7800","Atari 7800","Atari Lynx","Lynx","Bandai Wonderswan","WonderSwan","Bandai Wonderswan Color","WonderSwan","ColecoVision","ColecoVision","NEC PC Engine","TurboGrafx-16","NEC PC Engine-CD","TurboGrafx-16 (CD)","NEC SuperGrafx","SuperGrafx","NEC TurboGrafx-16","TurboGrafx-16","NEC TurboGrafx-CD","TurboGrafx-16 (CD)","Nintendo 64","Nintendo 64","Nintendo Entertainment System","NES","Nintendo Famicom","NES","Nintendo Famicom Disk System","NES","Nintendo Game Boy","Gameboy","Nintendo Game Boy Advance","Gameboy Advance","Nintendo Game Boy Color","Gameboy Color","Nintendo Super Game Boy","Gameboy","Samsung Gam Boy","Sega Master System","Sega CD","Genesis","Sega Game Gear","Game Gear","Sega Genesis","Genesis","Sega Master System","Sega Master System","Sega Mega Drive","Genesis","Sega Saturn","Saturn","Sega SG-1000","SG-1000","Super Nintendo Entertainment System","SNES","Texas Instruments TI-83","TI-83")
ident := mType[systemName]	; search object for the systemName identifier MESS uses
If !ident
	ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this " . moduleName . " module")
 hideEmuObj := Object(ident,1)	; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later
7z(romPath, romName, romExtension, sevenZExtractPath)
 If (romExtension != ".cue" && (systemName = "Sega Saturn" || systemName = "NEC PC Engine-CD" || systemName = "NEC PC Engine-CD"))
	ScriptError("You are trying to send a """ . romExtension . """ to " . MEmu . " when it only supports ""cue"" extensions")
 defaultsgbMode := If SystemName = "Nintendo Super Game Boy" ? "true" : "false"
 settingsFile := modulePath . "\" . moduleName . ".ini"
fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
bezelTopOffset := IniReadCheck(settingsFile, "Settings", "bezelTopOffset",54,,1)
bezelBottomOffset := IniReadCheck(settingsFile, "Settings", "bezelBottomOffset",8,,1)
bezelLeftOffset := IniReadCheck(settingsFile, "Settings", "bezelLeftOffset",8,,1)
bezelRightOffset := IniReadCheck(settingsFile, "Settings", "bezelRightOffset",8,,1)
sgbMode := IniReadCheck(settingsFile, systemName . "|" . romName, "SuperGameBoyMode",defaultsgbMode,,1)
BarcodeReaderHotkey := IniReadCheck(settingsFile, systemName, "BarcodeReaderHotkey","",,1)
 If (ident = "NES" && BarcodeReaderHotkey) {
	BarcodeReaderHotkey := xHotKeyVarEdit(BarcodeReaderHotkey,"BarcodeReaderHotkey","~","Add")
	xHotKeywrapper(BarcodeReaderHotkey,"BarcodeReader")
}
 BezelStart()
 bizFullscreen := If fullscreen = "true" ? " --fullscreen" : "" ;" --chromeless"		; chromeless makes it impossible for ahk to detect a title from the emu and therefore cannot be used
 bizhawkFile := CheckFile(emuPath . "\config.ini")
bizHawkCfg := LoadProperties(bizhawkFile)
currentDisplayStatusBar := ReadProperty(bizHawkCfg,"""DisplayStatusBar""",":")
If (bezelEnabled = "true" && currentDisplayStatusBar = "true,") {
	WriteProperty(bizHawkCfg,"""DisplayStatusBar""","false,",,,":")	; turn status bar off, this only covers the bottom bar though
	saveBizhawkCfg := 1
}
 If (systemName = "Nintendo Super Game Boy" || systemName = "Nintendo Game Boy")
{	currentSGBMode := ReadProperty(bizHawkCfg,"""GB_AsSGB""",":")
	If (sgbMode != "true" And currentSGBMode = "true,") {
		WriteProperty(bizHawkCfg,"""GB_AsSGB""","false,",,,":")	; turn SGBMode off
		saveBizhawkCfg := 1
	} Else If (sgbMode = "true" And currentSGBMode = "false,") {
		WriteProperty(bizHawkCfg,"""GB_AsSGB""","true,",,,":")		; turn SGBMode on
		saveBizhawkCfg := 1
	}
	If (sgbMode = "true")	; When SGB is enabled, BizHawk uses "SNES" in the win title instead of "Game Boy"
		ident := "SNES"
}
 If saveBizhawkCfg
	SaveProperties(bizhawkFile,bizHawkCfg)
 HideEmuStart()
Run(executable . " """ . romPath . "\" . romName . romExtension . """" . bizFullscreen, emuPath)
 WinWait(ident)
 If (systemName := "Nintendo 64")	; for some reason this system doesn't activate correctly and causes Fade to get hung up, forcing activation prevents this
	WinActivate, %ident%
 WinWaitActive(ident)
 BezelDraw()
HideEmuEnd()
FadeInExit()
 Process("WaitClose", executable)
 7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()
  SaveBizHawkFile(text,file) {
	FileDelete, %file%
	FileAppend, %text%, %file%
}
 BarcodeReader:
	Log("Module - Enabling Barcode Reader Dialog")
	;WinMenuSelectItem, %ident%,, NES, Barcode Reader ;This doesn't seem to work
	SendCommand("{Alt Down}n{Alt Up}b")
Return
 BezelLabel:
	disableHideTitleBar = true
	disableHideToggleMenu = true
	disableHideBorder = true
Return
 RestoreEmu:
	; WinMenuSelectItem does not work and & Winspector Spy msgs do not give any sign of WM_COMMAND used in this emu
	WinSet, Transparent, On, %ident%	; helps eliminate flashing of emu window when resuming, not 100% of the time though, but good enough
	WinActivate, %ident%
	If (Fullscreen = "true")
	{	Send, !{Enter}
		Sleep, 100
		Send, !{Enter}
	}
	WinSet, Transparent, Off, %ident%
Return
 CloseProcess:
	FadeOutStart()
	WinClose(ident)
Return

Comments