Jump to content
(Open Beta) HyperSpin 2 is now available for everyone ×

3 Screenshots

About This File


What's New in Version 05/22/2026 01:45 PM   See changelog

Released

MEmu := "WinUAE"
MEmuV := "v3.0.0"
MURL := ["http://www.winuae.net/"]
MAuthor := ["brolly","Turranius"]
MVersion := "2.2.10"
MCRC := 
iCRC := 
MID := "635138307631183750"
MSystem := ["Amiga Commodore","Amiga CD32 Commodore","Commodore CDTV","Amiga Demos Commodore","Arcadia Multi Select System","Commodore Plus-4"]
;----------------------------------------------------------------------------
; Notes:
; You can have specific configuration files inside a Configurations folder on WinUAE main dir.
; Just name them the same as the game name on the XML file.
; Make sure you create a host config files with these names:
; CD32 : cd32host.uae and cd32mousehost.uae;
; CDTV : cdtvhost.uae and cdtvmousehost.uae;
; Amiga : amigahost.uae;
; Amiga CD : amigacdhost.uae;
; cd32mouse and cdtvmouse are for mouse controlled games on these systems, you should configure 
; Windows Mouse on Port1 and a CD32 pad on Port2. For Amiga and Amiga CD make sure you set both 
; a joystick and a mouse on Port1 and only a joystick on Port2.
; Set all your other preferences like video display settings. And make sure you are saving a HOST 
; configuration file and not a general configuration file.
;
; If you want to configure an exit key through WinUAE:
; Host-Input-Configuration #1-RAW Keyboard and then remap the desired key to Quit Emulator.
; If you want to configure a key to toggle fullscreen/windowed mode:
; Host-Input-Configuration #1-RAW Keyboard and then remap the desired key to Toggle windowed/fullscreen.
;
; CD32 and CDTV:
; A settings file called System_Name.ini should be placed on your module dir. on that file you can define if a 
; game uses mouse or if it needs the special delay hack loading method amongst other things. Example of such a file:
;
; [Lemmings (Europe)]
; UseMouse=true
;
; [Project-X & F17 Challenge (Europe)]
; DelayHack=true
;
; Amiga:
; For MultiGame support make sure you don't change the default WinUAE diskswapper keys which are:
; END+1-0 (not numeric keypad) = insert image from swapper slot 1-10
; END+SHIFT+1-0 = insert image from swapper slot 11-20
; END+CTRL+1-4 = select drive
;
; To do that follow the same procedure as above for the exit 
; key, but on F11 set it to Toggle windowed/fullscreen. Make sure you save your configuration afterwards.
; Note : If you want to use Send commands to WinUAE for any keys that you configured through Input-Configuration panel make sure you 
; set those keys for Null Keyboard! This is a virtual keyboard that collects all input events that don't come from physical 
; keyboards. This applies to the exit or windowed/fullscreen keys mentioned above.
;
; If you are using WHDLoad games, but want to keep your default user-startup file after exiting then make a copy of it in the 
; WHDFolder\S (Set in PathToWHDFolder) and name it default-user-startup. This file will then be copied over S\user-startup on exit.
;
; Amiga CD:
; Several Amiga CD games require Hard drive installation, but will also require the game CD to be inserted in the CD drive.
; The module will take care of this automatically as long as you have the CD image alongside with HDD installed files (.hdf or .vhd).
; Amiga CD games will require a Workbench disk by default, for games that auto boot, make sure you go to the module settings and set 
; RequiresWB to false.
;
; To use the shader options you must first download and put in place the shader pack from the WinUAE website found here:
; http://www.winuae.net/
; Download the Direct3D Pixel Shader Filters and extract the zip file into your emulator directory
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

primaryExe := new Emulator(emuPath . "\" . executable)                    ; instantiate emulator executable object

; This object controls how the module reacts to different systems. WinUAE can play several systems, but needs to know what system you want to run, so this module has to adapt.
mType := Object("Amiga Commodore","a500","Amiga CD32 Commodore","cd32","Commodore CDTV","cdtv","Commodore Amiga CD","amigacd","Commodore Amiga Demos","a500","Arcadia Multi Select System","a500","Commodore Plus-4","a1200")
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 WinUAE module: " . moduleName)

SpecialCFGFile := new File(emuPath . "\Configurations\" . romName . ".uae")

If StringUtils.Contains(romExtension,"\.hdf|\.vhd")
    DefaultRequireWB := "true"
Else
    DefaultRequireWB := "false"

If StringUtils.Contains(romExtension,"\.zip|\.lha|\.rar|\.7z")
{
    SlaveFile := RLObject.findByExtension(romPath . "\" . romName . romExtension, "slave")    ; find rom in archive if it's extension is .slave
    If SlaveFile {
        If StringUtils.Contains(romName,"\(AGA\)")
        {
            defaultCycleExact := "false"
            defaultCpuSpeed := "max"
        } Else {
            defaultCycleExact := "true"
            defaultCpuSpeed := "real"
        }
        defaultImmediateBlittler := "false"
        defaultCpuCompatible := "false"
        defaultCacheSize := "0" ;8192
    }
}

If (ident = "amigacd") {
    DefaultRequireWB := "true" ;Most Amiga CD games require installation so better to default this to true
    defaultz3Ram := "128"
    isAmigaCd := "true"
}

; Settings
fullscreen := moduleIni.Read(romName . "|Settings", "ScreenMode","true",,1)
quickstartmode := moduleIni.Read(romName . "|Settings", "QuickStartMode",A_Space,,1)
kickstart_rom_file := moduleIni.Read(romName . "|Settings", "KickstartFile",,,1)
options := moduleIni.Read(romName . "|Settings", "Options",,,1)
bezelTopOffset := moduleIni.Read(romName . "|Settings", "Bezel_Top_Offset","0",,1)
bezelBottomOffset := moduleIni.Read(romName . "|Settings", "Bezel_Bottom_Offset","0",,1)
bezelRightOffset := moduleIni.Read(romName . "|Settings", "Bezel_Right_Offset","0",,1)
bezelLeftOffset := moduleIni.Read(romName . "|Settings", "Bezel_Left_Offset","0",,1)
use_gui := moduleIni.Read(romName . "|Settings", "UseGui","false",,1)
floppyspeed := moduleIni.Read(romName . "|Settings", "FloppySpeed","turbo",,1)
PathToWorkBenchBase := moduleIni.Read(romName . "|Settings", "PathToWorkBenchBase", EmuPath . "\HDD\Workbench31_Lite.vhd",,1)
PathToWorkBenchBase := AbsoluteFromRelative(EmuPath, PathToWorkBenchBase)
PathToExtraDrive := moduleIni.Read(romName . "|Settings", "PathToExtraDrive",,,1)
If (PathToExtraDrive)
    PathToExtraDrive := AbsoluteFromRelative(EmuPath, PathToExtraDrive)

usemouse := moduleIni.Read(romName, "UseMouse","false",,1) ;Only needed for CDTV and CD32
delayhack := moduleIni.Read(romName, "DelayHack","false",,1) ;Only needed for CDTV and CD32
requireswb := moduleIni.Read(romName, "RequiresWB",DefaultRequireWB,,1)

; Display 
videomode := moduleIni.Read(romName . "|Display", "VideoMode","PAL",,1)
gfx_width := moduleIni.Read(romName . "|Display", "XResolution","native",,1)
gfx_height := moduleIni.Read(romName . "|Display", "YResolution","native",,1)
gfx_blacker_than_black := moduleIni.Read(romName . "|Display", "BlackerThanBlack","false",,1)
gfx_flickerfixer := moduleIni.Read(romName . "|Display", "RemoveInterlaceArtifacts","false",,1)
gfx_linemode := moduleIni.Read(romName . "|Display", "LineMode",,,1)
gfx_filter_autoscale := moduleIni.Read(romName . "|Display", "AutoScale",,,1)
gfx_filter_mask := moduleIni.Read(romName . "|Display", "ShaderMask",,,1)
gfx_filter := moduleIni.Read(romName . "|Display", "FilterShader",,,1)
gfx_filter_mode := moduleIni.Read(romName . "|Display", "FilterShaderScale",,,1)
gfx_lores_mode := moduleIni.Read(romName . "|Display", "FilteredLowResolution",,,1)
gfx_resolution := moduleIni.Read(romName . "|Display", "ResolutionMode","hires",,1)

; CPU 
cpu := moduleIni.Read(romName . "|CPU", "CPU",,,1)
cpuspeed := moduleIni.Read(romName . "|CPU", "CpuSpeed",defaultCpuSpeed,,1)
cpucycleexact := moduleIni.Read(romName . "|CPU", "CpuCycleExact",,,1)
cpucompatible := moduleIni.Read(romName . "|CPU", "CpuCompatible",defaultCpuCompatible,,1)
mmu_model := moduleIni.Read(romName . "|CPU", "MMU","false",,1)
cpu_no_unimplemented := moduleIni.Read(romName . "|CPU", "DisableUnimplementedCPU","true",,1)
fpu := moduleIni.Read(romName . "|CPU", "FPU",,,1)
fpu_strict := moduleIni.Read(romName . "|CPU", "MoreCompatibleFPU","false",,1)
fpu_no_unimplemented := moduleIni.Read(romName . "|CPU", "DisableUnimplementedFPU","true",,1)
cachesize := moduleIni.Read(romName . "|CPU", "CacheSize",defaultCacheSize,,1)
24bitaddressing := moduleIni.Read(romName . "|CPU", "24-BitAddressing","true",,1)

; Chipset
cycleexact := moduleIni.Read(romName . "|Chipset", "CycleExact",defaultCycleExact,,1)
immediateblitter := moduleIni.Read(romName . "|Chipset", "ImmediateBlitter",defaultImmediateBlittler,,1)
blittercycleexact := moduleIni.Read(romName . "|Chipset", "BlitterCycleExact",,,1)
collisionlevel := moduleIni.Read(romName . "|Chipset", "CollisionLevel",,,1)

; RAM
chipmemory := moduleIni.Read(romName . "|RAM", "ChipMemory",,,1)
fastmemory := moduleIni.Read(romName . "|RAM", "FastMemory",,,1)
autoconfigfastmemory := moduleIni.Read(romName . "|RAM", "AutoConfigFastMemory",,,1)
slowmemory := moduleIni.Read(romName . "|RAM", "SlowMemory",,,1)
z3fastmemory := moduleIni.Read(romName . "|RAM", "Z3FastMemory",defaultz3Ram,,1)
megachipmemory := moduleIni.Read(romName . "|RAM", "MegaChipMemory",,,1)
processorslotfastmemory := moduleIni.Read(romName . "|RAM", "ProcessorSlotFast",,,1)

; Expansions
rtgcardtype := moduleIni.Read(romName . "|Expansions", "RTGCardType",,,1)
rtgvramsize := moduleIni.Read(romName . "|Expansions", "RTGVRAMSize",,,1)
rtghardwaresprite := moduleIni.Read(romName . "|Expansions", "RTGHardwareSprite",,,1)

; WHDLoad
PathToWHDFolder := moduleIni.Read(romName . "|WHDLoad", "PathToWHDFolder", EmuPath . "\HDD\WHD",,1)
PathToWHDFolder := AbsoluteFromRelative(EmuPath, PathToWHDFolder)
whdloadoptions := moduleIni.Read(romName . "|WHDLoad", "WHDLoadOptions","PRELOAD",,1)
neverextract := moduleIni.Read(romName . "|WHDLoad", "NeverExtract","false",,1)

; CD-Rom
CDRomImage := moduleIni.Read(romName, "CDRomImage",,,1)

If PathToExtraDrive
    ExtraDriveFolder := new Folder(PathToExtraDrive)

BezelStart()

; Force Full Screen Windowed and Autoscale if Bezels are enabled. This must be done here since window class name changes from windowed to fullscreen modes
If bezelPath {
    fullscreen := "fullwindow"
    gfx_filter_autoscale := "scale"
}

winUAEWindowClass := "PCsuxRox"        ; Class name is different depending on if the game is being run windowed or fullscreen
If (fullscreen = "true" or fullscreen = "fullwindow")
    winUAEWindowClass := "AmigaPowah"

emuPrimaryWindow := new Window(new WindowTitle(,winUAEWindowClass))    ; instantiate primary emulator window object

If (cpucycleexact and blittercycleexact)
    cycleexact := "" ;No need to set cycle exact if both cpu and blitter are set as it could lead to inconsistent states

if (cpu != "68060" and cpu_no_unimplemented)
    cpu_no_unimplemented := "" ; cpu_no_unimplemented requires a 68060 CPU. Disable it if its true without a 68060 CPU.}

if (fpu = "internal") {
    if (cpu = "68040" || cpu = "68060") ; Internal FPU is only valid for 040 and 060 cpus
        fpu := cpu
    else
        fpu := ""
}

; Make sure 24bitaddressing is false if using Z3 memory.
If z3fastmemory 
    24bitaddressing := "false"
    
;Fill both z3 slots when amount of RAM requires it
If (z3fastmemory = 384) {
    z3fastmemory := 256
    z3fastmemoryb := 128
} Else If (z3fastmemory = 768) {
    z3fastmemory := 512
    z3fastmemoryb := 256
} Else If (z3fastmemory = 1536) {
    z3fastmemory := 1024
    z3fastmemoryb := 512
}    

videomode := If videomode = "NTSC" ? "-s ntsc=true" : ""

If (requireswb = "true") {
    ident := "a1200"
    If !PathToWorkBenchBase
        ScriptError("You must set the WinUAE module setting for PathToWorkBenchBase before using WorkBench")
    Else {
        WorkBenchBaseFile := new File(PathToWorkBenchBase)
        WorkBenchBaseFile.CheckFile()
        wbDrive := "-s hardfile=rw,32,1,2,512," . """" . WorkBenchBaseFile.FileFullPath . """"
    }
}

If StringUtils.Contains(romExtension,"\.hdf|\.vhd")
{
    ident := "a1200"
    gameDrive := "-s hardfile=rw,32,1,2,512," . """" . romPath . "\" . romName . romExtension . """"
}

If ExtraDriveFolder.FileFullPath
{
    ExtraDriveFolder.CheckFile(,,,,,1)    ; allow folders
    If StringUtils.InStr(ExtraDriveFolder.Exist(), "D")    ; it's a folder
        extraDrive := " -s filesystem=rw,Extra:" . """" . ExtraDriveFolder.FileFullPath . """"
    Else    ; it's a file
    {
        StringUtils.SplitPath(pathtoextradrive,,,extradriveExtension)
        If StringUtils.Contains(ExtraDriveFolder.FileExt,"hdf|vhd")
            extraDrive := " -s hardfile=rw,32,1,2,512," . """" . ExtraDriveFolder.FileFullPath . """"
        Else
            extraDrive := " -s filesystem=ro,Extra:" . """" . ExtraDriveFolder.FileFullPath . """"
    }
}

options := options . " " . videomode

If (ident = "a500" or ident = "a1200") {
    If StringUtils.Contains(romName,"\(AGA\)|\(LW\)")
        ident := "a1200"

    If SlaveFile {
        If !PathToWHDFolder
            ScriptError("You must set the WinUAE module setting for PathToWHDFolder before using WHD")
        
        PathToWHDFolder := new Folder(PathToWHDFolder)
        PathToWHDFolder.CheckFolder()

        ident := "a1200"

        ;Create the user-startup file to launch the game
        WHDUserStartupFile := new File(PathToWHDFolder.FilePath . "\S\user-startup")
        StringUtils.SplitPath(SlaveFile, SlaveName, SlaveFolder)

        WHDUserStartupFile.Delete()
        WHDUserStartupFile.Append("echo """";`n")
        WHDUserStartupFile.Append("echo Running: " . SlaveName . ";`n")
        WHDUserStartupFile.Append("echo """";`n")
        WHDUserStartupFile.Append("cd dh1:" . SlaveFolder . ";`n")
        WHDUserStartupFile.Append("whdload " . SlaveName . " " . whdloadoptions . ";`n")
    }
}

hideEmuObj := Object(emuPrimaryWindow,1)
7z(romPath, romName, romExtension, sevenZExtractPath)

;--- Detecting what Configuration File to use (Or Quick Start Mode) ---

If SpecialCFGFile.Exist() {
    ;Game specific configuration file exists
    configFile := romName . ".uae"
} Else {
    ;Game specific configuration file doesn't exist
    If (ident = "cd32" or ident = "cdtv") {
        configFile := If (usemouse = "true") ? ("host\" . ident . "mousehost.uae") : ("host\" . ident . "host.uae")
        quickcfg := If (ident = "cd32") ? ("-s quickstart=" . ident . "`,0 -s chipmem_size=8") : ("-s quickstart=" . ident . "`,0")
    } Else {
        ;Amiga or Amiga CD game

        configFile := If systemName = "Commodore Amiga CD" ? "host\amigacdhost.uae" : "host\amigahost.uae"
        If quickstartmode
            quickcfg := "-s quickstart=" . quickstartmode
        Else
            quickcfg := If (ident = "a500") ? "-s quickstart=a500`,1" : (If (isAmigaCd = "true") ? "-s quickstart=a4000`,1" : "-s quickstart=a1200`,1")
    }
}

;--- Setting up command line arguments to use ---

; Global command line arguments.
If use_gui
    options := options . " -s use_gui=" . use_gui

If (fullscreen = "true") {
    options := options . " -s gfx_width_fullscreen=" . gfx_width
    options := options . " -s gfx_height_fullscreen=" . gfx_height
} Else If (fullscreen = "false") {
    If (gfx_width != "native" and gfx_height != "native") {
        options := options . " -s gfx_width_windowed=" . gfx_width
        options := options . " -s gfx_height_windowed=" . gfx_height
    }
}

If gfx_linemode
    options := options . " -s gfx_linemode=" . gfx_linemode
If gfx_filter_autoscale
    options := options . " -s gfx_filter_autoscale=" . gfx_filter_autoscale
If gfx_blacker_than_black
    options := options . " -s gfx_blacker_than_black=" . gfx_blacker_than_black
If gfx_flickerfixer
    options := options . " -s gfx_flickerfixer=" . gfx_flickerfixer
If gfx_filter_mode
    options := options . " -s gfx_filter_mode=" . gfx_filter_mode

If (gfx_lores_mode = "true")
    options := options . " -s gfx_lores_mode=filtered"
Else If (gfx_lores_mode = "false")
    options := options . " -s gfx_lores_mode=normal"

If gfx_resolution {
    options := options . " -s gfx_resolution=" . gfx_resolution
    If (gfx_resolution = "lores") {
        options := options . " -s gfx_autoresolution_vga=false"
        options := options . " -s gfx_lores=true"
    }
    Else {
        options := options . " -s gfx_lores=false"
    }
}

If gfx_filter_mask {
    GfxFilterMaskFile := new File(emuPath . "\Plugins\masks\" . gfx_filter_mask)
    RLLog.Debug("Module - Filter - gfx_filter_mask_path = " . GfxFilterMaskFile.FileFullPath)
    If GfxFilterMaskFile.Exist()
        options := options . " -s gfx_filter_mask=" . gfx_filter_mask
}

If gfx_filter {
    If (StringUtils.SubStr(gfx_filter, 1, 4) = "D3D:") {
        FilterFileName := StringUtils.TrimLeft(gfx_filter, 4)
        FilterFile := new File(emuPath . "\Plugins\filtershaders\direct3d\" . FilterFileName)
        If FilterFile.Exist()
            options := options . " -s gfx_filter=" . gfx_filter
    } Else {
        options := options . " -s gfx_filter=" . gfx_filter
    }
}

If (ident = "cd32" or ident = "cdtv") {
    If (delayhack = "true")
        options := options . " -s cdimage0=" . """" . romPath . "\" . romName . romExtension . """" . "`,delay"
    Else
        options := options . " -cdimage=" . """" . romPath . "\" . romName . romExtension . """"
    
    If fastmemory
        options := options . " -s fastmem_size=" . fastmemory
} Else {
    If floppyspeed
        options := options . " -s floppy_speed=" . floppyspeed
    If kickstart_rom_file
        options := options . " -s kickstart_rom_file=" . """" . kickstart_rom_file . """"
    If (cachesize || cachesize = "0")
        options := options . " -s cachesize=" . cachesize
    If immediateblitter
        options := options . " -s immediate_blits=" . immediateblitter
    If cycleexact
        options := options . " -s cycle_exact=" . cycleexact
    If cpucycleexact
        options := options . " -s cpu_cycle_exact=" . cpucycleexact
    If blittercycleexact
        options := options . " -s blitter_cycle_exact=" . blittercycleexact
    If cpucompatible
        options := options . " -s cpu_compatible=" . cpucompatible
    If cpuspeed
        options := options . " -s cpu_speed=" . cpuspeed
    If cpu
        options := options . " -s cpu_model=" . cpu
    If cpu_no_unimplemented
        options := options . " -s cpu_no_unimplemented=" . cpu_no_unimplemented        
    If (mmu_model = "true")    
        options := options . " -s mmu_model=" . cpu ; not a typo. Actually needs the same value as CPU.
    If 24bitaddressing
        options := options . " -s cpu_24bit_addressing=" . 24bitaddressing    
    If fpu
        options := options . " -s fpu_model=" . fpu
    If fpu_strict
        options := options . " -s fpu_strict=" . fpu_strict    
    If fpu_no_unimplemented
        options := options . " -s fpu_no_unimplemented=" . fpu_no_unimplemented
    If collisionlevel
        options := options . " -s collision_level=" . collisionlevel
    If chipmemory
        options := options . " -s chipmem_size=" . chipmemory
    If fastmemory
        options := options . " -s fastmem_size=" . fastmemory
    If autoconfigfastmemory
        options := options . " -s fastmem_autoconfig=" . autoconfigfastmemory
    If slowmemory
        options := options . " -s bogomem_size=" . slowmemory
    If z3fastmemory
        options := options . " -s z3mem_size=" . z3fastmemory
    If z3fastmemoryb
        options := options . " -s z3mem2_size=" . z3fastmemoryb
    If megachipmemory
        options := options . " -s megachipmem_size=" . megachipmemory
    If processorslotfastmemory
        options := options . " -s mbresmem_size=" . processorslotfastmemory
    If rtgcardtype
        options := options . " -s gfxcard_type=" . rtgcardtype
    If rtgvramsize
        options := options . " -s gfxcard_size=" . rtgvramsize
    If rtghardwaresprite
        options := options . " -s gfxcard_hardware_sprite=" . rtghardwaresprite

    If SlaveFile {
        ;WHDLoad Game
        options := options . " -s filesystem=rw,WHD:" . """" . PathToWHDFolder.FilePath . """" . " -s filesystem=ro,Games:" . """" . romPath . "\" . romName . romExtension . """"
    }
    Else If gameDrive {
        ;HDD Game
        options := options . " " . wbDrive . " " . gameDrive

        ;Check if there's also a CD to load
        CDRomImageFile := new File(romPath . "\" . CDRomImage)
        If (CDRomImage) {
            If CDRomImageFile.Exist()
                cdDrive := CDRomImageFile.FileFullPath
        }
        Else {
            CDRomImageCUEFile := new File(romPath . "\" . romName . ".cue")
            CDRomImageISOFile := new File(romPath . "\" . romName . ".iso")
            CDRomImageMDSFile := new File(romPath . "\" . romName . ".mds")
            If CDRomImageCUEFile.Exist()
                cdDrive := CDRomImageCUEFile.FileFullPath
            If CDRomImageISOFile.Exist()
                cdDrive := CDRomImageISOFile.FileFullPath
            If CDRomImageMDSFile.Exist()
                cdDrive := CDRomImageMDSFile.FileFullPath
        }

        If extraDrive
            options := options . extraDrive
        If cdDrive
            options := options . " -cdimage=" . """" . cdDrive . """" . " -s win32.map_cd_drives=true -s scsi=true"
    } Else If StringUtils.Contains(romExtension,"\.cue|\.iso|\.mds")
    {
        ;Amiga CD game

        ;Check if game has a HDD installation
        RomHDFFile := new File(romPath . "\" . romName . ".hdf")
        RomVHDFile := new File(romPath . "\" . romName . ".vhd")
        If RomHDFFile.Exist()
            installedHdd := " -s hardfile=rw,32,1,2,512," . """" . RomHDFFile.FileFullPath . """"
        If RomVHDFile.Exist()
            installedHdd := " -s hardfile=rw,32,1,2,512," . """" . RomVHDFile.FileFullPath . """"

        options := options . " " . wbDrive . installedHdd
        
        If extraDrive
            options := options . extraDrive

        options := options . " -cdimage=" . """" . romPath . "\" . romName . romExtension . """" . " -s win32.map_cd_drives=true -s scsi=true"
    } Else {
        ;Floppy Game

        ;MultiDisk loading, this will load the first 2 disks into drives 0 and 1 since some games can read from both drives and therefore 
        ;the user won't need to change disks through the MG menu. We can have up to 4 drives, but most of the games will only support 2 drives 
        ;so disks are only loaded into the first 2 for better compatibility. Remaining drives will be loaded into quick disk slots.
        
        romCount := romTable.MaxIndex()
        If StringUtils.Contains(romName,"\(Disk 1\)")
        {
            ;If the user boots any disk rather than the first one, multi disk support must be done through RocketLauncher MG menu
            If romCount > 1
            {
                options := options . " -s nr_floppies=2"
                mgoptions := " -s floppy1=" . """" . romTable[2,1] . """"
            }
        }
        options := options . " " . floppyspeed . " -s floppy0=" . """" . romPath . "\" . romName . romExtension . """" . mgoptions
        
        If romCount > 1
        {
            ;DiskSwapper
            ;diskswapper := " -diskswapper "
            Loop % romTable.MaxIndex() ; loop each item in our array
            {
                ;diskswapper := diskswapper . """" . romTable[A_Index,1] . ""","
                diskswapper := diskswapper . " -s diskimage" . (A_Index-1) . "=" . """" . romTable[A_Index,1] . """"
            }
            options := options . diskswapper
        }
    }
}

configFile := new File(emuPath . "\Configurations\" . configFile)

;param1 := "-f " . """" . configFileFullPath . """" . " " . quickcfg
If configFile.Exist()
    param1 := " -f " . """" . configFile.FileFullPath . """"
param1 := param1 . " " . quickcfg

param2 := " -s gfx_fullscreen_amiga=" . fullscreen
param3 := options

HideAppStart(hideEmuObj,hideEmu)
primaryExe.Run(param1 . param2 . A_Space . param3 . " -portable")

If (use_gui = "true") {
    emuPropertiesWindow := new Window(new WindowTitle("WinUAE Properties"))
    emuPropertiesWindow.Wait(60)
    FadeInExit()
    emuPropertiesWindow.WaitClose()
    TimerUtils.Sleep(100)
    errLvl := primaryExe.Process("WaitClose")
    If (errLvl = 0) {
        7zCleanUp()
        ExitModule()
    }
}

emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()

BezelDraw()
HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


MultiGame:
    If (currentButton = 10)
        diskslot := 0
    Else If (currentButton > 10)
        diskslot := currentButton - 10
    Else
        diskslot := currentButton

    If (currentButton > 10)
        KeyUtils.Send("{End Down}{Shift Down}" . diskslot . "{Shift Up}{End Up}")
    Else
        KeyUtils.Send("{End Down}" . diskslot . "{End Up}")
Return

CloseProcess:
    If (ident = "a500" or ident = "a1200") {
        If SlaveFile {
            PathToWHDFolder.CheckFolder()
            ;Copy default-user-startup to user-startup if file exists
            WHDDefaultFile := new File(PathToWHDFolder . "\S\default-user-startup")
            If WHDDefaultFile.Exist()
                WHDDefaultFile.Copy(PathToWHDFolder . "\S\user-startup",1)
        }
    }
    FadeOutStart()
    emuPrimaryWindow.Close()
Return
 


Aspect Ratio

4:3
  • Like 1
  • Super Like 1

User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

×
×
  • Create New...