Outils pour utilisateurs

Outils du site


tutos:software:systemes:acornbbcmicro
Cette version est dépassée. Une version approuvée plus récente existe.DiffCette version (2017/01/08 21:32) est en ébauche.
Approuvés: 0/1

Ceci est une ancienne révision du document !


Ajout du système ACORN BBC MICRO

Auteur : micaelo14

Acorn BBC Micro

Prendre la version 4.14 de l'émulateur BeebEm

Nous utiliserons ce module :

Code :

Code :

MEmu = BeebEm MEmuV = v4.14 MURL = http://www.mkw.me.uk/beebem/index.html MAuthor = brolly MVersion = 1.0.5 MCRC = 8C0B0650 iCRC = 8E9F265F mId = 635599773229077671 MSystem = “Acorn BBC Micro” ;—————————————————————————- ; Notes: ; Start BeebEm and go to Options-Preference Options-Select User Data Folder ; Make sure you set your user data folder to Emulator_Path\UserData ; ; Supported Models: ; BBC Model B ; BBC Model B + Integra-B ; BBC Model B Plus ; BBC Master 128 ; ; To list the contents of a disk drive so you can find the executable file type: ; *DISK (or *DR.0 or *DR.1 depending on the drive you want to use) ; *CAT ; ;—————————————————————————- StartModule() BezelGUI() FadeInStart()

settingsFile := modulePath . “\” . moduleName . “.ini” configFile := emuPath . “\UserData\Preferences.cfg”

Fullscreen := IniReadCheck(settingsFile, “Settings”, “Fullscreen”,“true”,,1) ShowFPS := IniReadCheck(settingsFile, “Settings”, “ShowFPS”,“00”,,1) EmulatedDriveSounds := IniReadCheck(settingsFile, “Settings”, “EmulatedDriveSounds”,“00”,,1) Model := IniReadCheck(settingsFile, “Settings” . “|” . romName, “Model”,“0”,,1) TapeSpeed := IniReadCheck(settingsFile, “Settings” . “|” . romName, “TapeSpeed”,“ee02”,,1) SetTube := IniReadCheck(settingsFile, “Settings” . “|” . romName, “SetTube”,“false”,,1) WriteProtectDrives := IniReadCheck(settingsFile, “Settings” . “|” . romName, “WriteProtectDrives”,“true”,,1) ChainCommand := IniReadCheck(settingsFile, romName, “ChainCommand”,_ckgedit_QUOTckgedit>,,1) RunCommand := IniReadCheck(settingsFile, romName, “RunCommand”,_ckgedit_QUOTckgedit>,,1) CustomCommand := IniReadCheck(settingsFile, romName, “CustomCommand”,_ckgedit_QUOTckgedit>,,1) TapeLoadingMethod := IniReadCheck(settingsFile, romName, “TapeLoadingMethod”,“CHAIN”,,1) RomCfgFile := IniReadCheck(settingsFile, romName, “RomCfgFile”,_ckgedit_QUOTckgedit>,,1) AutobootDisk := IniReadCheck(settingsFile, romName, “AutobootDisk”,“true”,,1) MultipleDiskDrive := IniReadCheck(settingsFile, romName, “MultipleDiskDrive”,“0”,,1)

StringUpper RunCommand, RunCommand

If (RomCfgFile) { RomCfgFile := CheckFile(emuPath . “\UserData\” . RomCfgFile) }

hideEmuObj := Object(“ahk_class BEEBWIN”,1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later 7z(romPath, romName, romExtension, 7zExtractPath)

If romExtension not in .ssd,.dsd,.adl,.adf,.img,.uef ScriptError(“The extension ” . romExtension . “ is not one of the known supported extensions for this emulator.”)

If !FileExist(configFile) ScriptError(“Preferences.cfg was not found at ” . configFile)

If Model not in 0,1,2,3 ScriptError(“Model ” . Model . “ is not one of the known supported systems for this module: ” . moduleName . “. Please use the option to configure the type of system needed through RocketLauncherUI.”)

configIni := LoadProperties(configFile) ; load the config into memory SetTube := If SetTube = “true” ? “01” : “00” ShowFPS := If ShowFPS = “true” ? “01” : “00” EmulatedDriveSounds := If EmulatedDriveSounds = “true” ? “01” : “00” Params := Params . “-Data - -DisMenu ”

If ( romExtension = “.uef” ) { ;Tape If (TapeLoadingMethod = “RUN”) { Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit>OSCLI\s2\STAPE\s2\S\nOSCLI\s2\SRUN\s2\S\n_ckgedit_QUOTckgedit> ” } Else { Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit>OSCLI\s2\STAPE\s2\S\nPAGE\s-\S\s6\SE00\nCH.\s22\S\n_ckgedit_QUOTckgedit> ” } ;Alternatives ;Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit>OSCLI\s2\STAPE\s2\S\nOSCLI\s2\SRUN\s2\S\n_ckgedit_QUOTckgedit> ” ;Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit>\s'\STAPE\nPAGE\s-\S\s6\SE00\nCHAIN \s22\S\n_ckgedit_QUOTckgedit> ” ;Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit>\s'\STAPE\n\s'\SRUN\n_ckgedit_QUOTckgedit> ” } Else { ;Disk If (ChainCommand) { Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit_QUOTckgedit> . (If Model = “3” ? “\d0600\S\d0040” : _ckgedit_QUOTckgedit>) . “CH.\s2\S” . ChainCommand . “\s2\S\n_ckgedit_QUOTckgedit> ” ;Loading the Master 128 OS takes longer so we need to simulate a delay before starting to send the commands otherwise not all of it will get through. Then revert it back to the default value of 40ms. } Else If (RunCommand) { Params := Params . ” -KbdCmd _ckgedit_QUOTckgedit_QUOTckgedit> . (If Model = “3” ? “\d0600\S\d0040” : _ckgedit_QUOTckgedit>) . “OSCLI\s2\SRUN ” . RunCommand . “\s2\S\n_ckgedit_QUOTckgedit> ” ;Loading the Master 128 OS takes longer so we need to simulate a delay before starting to send the commands otherwise not all of it will get through. Then revert it back to the default value of 40ms. } Else If (CustomCommand) { Params := Params . “ -KbdCmd _ckgedit_QUOTckgedit_QUOTckgedit> . (If Model = “3” ? “\d0600\S\d0040” : _ckgedit_QUOTckgedit>) . CustomCommand . “\n_ckgedit_QUOTckgedit> ” ;Loading the Master 128 OS takes longer so we need to simulate a delay before starting to send the commands otherwise not all of it will get through. Then revert it back to the default value of 40ms. } If (AutobootDisk = “false”) { Params := Params . ” -NoAutoBoot “ } } If (RomCfgFile) { Params := Params . ” -Roms _ckgedit_QUOTckgedit_QUOTckgedit> . RomCfgFile . _ckgedit_QUOTckgedit_QUOTckgedit_QUOTckgedit> } Params := Params . “ _ckgedit_QUOTckgedit_QUOTckgedit> . romPath . “\” . romName . romExtension . _ckgedit_QUOTckgedit_QUOTckgedit_QUOTckgedit>

;MultiGame support for disk games (load both disks in the 2 drives) If ( romExtension != ”.uef“ ) { RomTableCheck() ; make sure romTable is created already so the next line can calculate correctly romCount = % romTable.MaxIndex() If romName contains (Disk 1) { If romCount > 1 { Params := Params . ” _ckgedit_QUOTckgedit_QUOTckgedit> . romTable[2,1] . _ckgedit_QUOTckgedit_QUOTckgedit_QUOTckgedit> } } } ;Set the properties in the preferences.cfg file ;Yes, ShowFSP is not a typo on our side. The BeebEm emulator authors made this typo so we have to use it. WriteProperty(configIni,“ShowFSP”, ShowFPS) WriteProperty(configIni,“DiscDriveSoundEnabled”, EmulatedDriveSounds) WriteProperty(configIni,“RelaySoundEnabled”, EmulatedDriveSounds) WriteProperty(configIni,“TapeSoundEnabled”, EmulatedDriveSounds) WriteProperty(configIni,“MachineType”, “0” . Model) WriteProperty(configIni,“KeyMapping”, “00009c62”) WriteProperty(configIni,“TubeEnabled”, SetTube) WriteProperty(configIni,“Tape Clock Speed”, TapeSpeed) SaveProperties(configFile,configIni) ; save changes to Preferences.cfg BezelStart() Fullscreen := If Fullscreen = “true” ? “-FullScreen ” : _ckgedit_QUOTckgedit>

HideEmuStart()

Run(executable . “ ” . Fullscreen . Params, emuPath)

WinActivate, ahk_class BEEBWIN WinWaitActive(“ahk_class BEEBWIN”)

If (WriteProtectDrives = “false”) { PostMessage, 0x111, 40064,,,ahk_class BEEBWIN PostMessage, 0x111, 40065,,,ahk_class BEEBWIN }

If bezelPath { WinGetPos,,, initialwidth,, ahk_class BEEBWIN W:= timeout := A_TickCount Loop { Sleep, 50 WinGetPos,,, W,, ahk_class BEEBWIN If (W != initialwidth) Break If(timeout < A_TickCount - 2000) Break } } Sleep, 50

BezelDraw() HideEmuEnd() FadeInExit() Process(“WaitClose”, executable) 7zCleanUp() BezelExit() FadeOutExit() ExitModule()

HaltEmu: Return RestoreEmu: Return

MultiGame: If ( romExtension = “.uef” ) Control := “40108” Else Control := If MultipleDiskDrive = “1” ? “40023” : “40002”

PostMessage, 0x111, %Control%,,, ahk_class BEEBWIN OpenROM(“ahk_class #32770”, selectedRom) Return

CloseProcess: FadeOutStart() WinClose(“ahk_class BEEBWIN”) Return

Pour RL le paramétrer ainsi :

tutos/software/systemes/acornbbcmicro.1483907579.txt.gz · Dernière modification: 2017/01/08 21:32 de nabubokon