About This File
What's New in Version 05/22/2026 01:50 PM
Released
MEmu := "Virtual Jaguar"
MEmuV := "v2.1.2"
MURL := ["http://icculus.org/virtualjaguar/","http://outrage.the-crow.co.uk/builds/"]
MAuthor := ["djvj","brolly"]
MVersion := "2.1.1"
MCRC := "8857E72F"
iCRC := "FDB1A0E3"
MID := "635038268931827139"
MSystem := ["Atari Jaguar"]
;----------------------------------------------------------------------------
; Notes:
; The Atari Jaguar bios "jagboot.rom" must exist in the eeproms emulator folder
; The emu stores its config in the registry @ HKEY_CURRENT_USER\Software\Underground Software\Virtual Jaguar
;
; If you are using SVN versions after v2.1.2 of the emulator make sure you change the Window class to
; Qt5QWindowIcon on RLUI.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
settingsFile := modulePath . "\" . moduleName . ".ini"
Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
WindowZoom := IniReadCheck(settingsFile, "Settings", "WindowZoom","3",,1)
Filter := IniReadCheck(settingsFile, "Settings", "Filter","0",,1)
VideoMode := IniReadCheck(settingsFile, "Settings" . "|" . romName, "VideoMode","0",,1)
GPUEnabled := IniReadCheck(settingsFile, "Settings" . "|" . romName, "GPUEnabled","true",,1)
DSPEnabled := IniReadCheck(settingsFile, "Settings" . "|" . romName, "DSPEnabled","true",,1)
EnableJaguarBIOS := IniReadCheck(settingsFile, "Settings" . "|" . romName, "EnableJaguarBIOS","true",,1)
UseFastBlitter := IniReadCheck(settingsFile, romName, "useFastBlitter","false",,1)
WindowClass := IniReadCheck(settingsFile, "Settings" . "|" . romName, "WindowClass","QWidget",,1)
If bezelEnabled
{
If (Fullscreen = "true") {
disableForceFullscreen := true
disableWinMove := true
disableHideTitleBar := true
disableHideToggleMenu := true
disableHideBorder := true
BezelStart()
} Else {
disableHideToggleMenu := true
disableHideBorder := true
bezelTopOffset := IniReadCheck(settingsFile, "Settings", "Bezel_Top_Offset","62",,1)
bezelBottomOffset := IniReadCheck(settingsFile, "Settings", "Bezel_Bottom_Offset","52",,1)
bezelRightOffset := IniReadCheck(settingsFile, "Settings", "Bezel_Right_Offset", "8",,1)
bezelLeftOffset := IniReadCheck(settingsFile, "Settings", "Bezel_Left_Offset", "8",,1)
BezelStart("fixResMode")
}
}
; Setting Fullscreen setting in registry if it doesn't match what user wants above
currentFullScreen := ReadReg("fullscreen")
If ( Fullscreen = "true" And currentFullScreen = "false" )
WriteReg("fullscreen", "true")
Else If ( Fullscreen != "true" And currentFullScreen = "true" )
WriteReg("fullscreen", "false")
;Same for window zoom
currentWindowZoom := ReadReg("zoom")
If ( WindowZoom != currentWindowZoom )
WriteReg("zoom", WindowZoom, "REG_DWORD")
;Same for GPU Enabled
currentGPUEnabled := ReadReg("GPUEnabled")
If ( GPUEnabled = "true" And currentGPUEnabled = "false" )
WriteReg("GPUEnabled", "true")
Else If ( GPUEnabled != "true" And currentGPUEnabled = "true" )
WriteReg("GPUEnabled", "false")
;Same for DSP Enabled
currentDSPEnabled := ReadReg("DSPEnabled")
If ( DSPEnabled = "true" And currentDSPEnabled = "false" )
WriteReg("DSPEnabled", "true")
Else If ( DSPEnabled != "true" And currentDSPEnabled = "true" )
WriteReg("DSPEnabled", "false")
;And for use BIOS
currentEnableJaguarBIOS := ReadReg("useJaguarBIOS")
If ( EnableJaguarBIOS = "true" And currentEnableJaguarBIOS = "false" )
WriteReg("useJaguarBIOS", "true")
Else If ( EnableJaguarBIOS != "true" And currentEnableJaguarBIOS = "true" )
WriteReg("useJaguarBIOS", "false")
;And for bilenear filter
currentFilter := ReadReg("glFilterType")
If ( Filter != currentFilter )
WriteReg("glFilterType", Filter, "REG_DWORD")
;And Video Mode
currentHardwareTypeNTSC := ReadReg("hardwareTypeNTSC")
If ( VideoMode = "PAL" And currentHardwareTypeNTSC = "true" )
WriteReg("hardwareTypeNTSC", "false")
Else If ( VideoMode = "NTSC" And currentHardwareTypeNTSC = "false" )
WriteReg("hardwareTypeNTSC", "true")
;And Fast Blitter
currentUseFastBlitter := ReadReg("useFastBlitter")
If ( UseFastBlitter = "true" And currentUseFastBlitter = "false" )
WriteReg("useFastBlitter", "true")
Else If ( UseFastBlitter != "true" And currentUseFastBlitter = "true" )
WriteReg("useFastBlitter", "false")
jagBIOS := emuPath . "\eeproms\jagboot.rom"
CheckFile(jagBIOS, "Could not find ""jagboot.rom"" bios rom, it is required for " . MEmu . ": " . jagBIOS)
hideEmuObj := Object("Virtual Jaguar ahk_class " . WindowClass,1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later
7z(romPath, romName, romExtension, 7zExtractPath)
HideEmuStart() ; This fully ensures windows are completely hidden even faster than winwait
Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)
WinWait("Virtual Jaguar ahk_class " . WindowClass)
WinWaitActive("Virtual Jaguar ahk_class " . WindowClass)
BezelDraw()
HideEmuEnd()
FadeInExit()
Process("WaitClose",executable)
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()
ReadReg(var1) {
regValue := RegRead("HKEY_CURRENT_USER", "Software\Underground Software\Virtual Jaguar", var1)
Return %regValue%
}
WriteReg(var1, var2, ValueType="REG_SZ") {
RegWrite(ValueType, "HKEY_CURRENT_USER", "Software\Underground Software\Virtual Jaguar", var1, var2)
}
CloseProcess:
FadeOutStart()
WinClose("Virtual Jaguar ahk_class " . WindowClass)
Process("Close",executable) ;Some versions of Virtual Jaguar won't close with WinClose
Return
