Outils pour utilisateurs

Outils du site


tutos:software:systemes:atari-8bit

Ajout du système Atari 8-bit

Présentation

L'Atari 8-bit est une série d'ordinateurs personnels 8 bit produits par Atari. Les premiers modèles, Atari 400 et Atari 800, sont apparus en 1979. À l'époque, l'Atari 400 valait en France environ 1990 francs. La série d'ordinateurs a été un grand succès commercial, vendant deux millions d'unités entre 1979 et 1985.

Emulateurs compatibles

Installation sous RocketLauncher

Pour ce tutoriel, le système Atari 8-bit a été validé avec la version 4.1 de l'émulateur Atari800WinPlus et la version 1.0 modifié du module Atari800WinPlus. Des versions plus récentes peuvent être disponible via RocketLauncherUI.

Installation de l'émulateur

Il vous faudra le paramétrer ainsi :

  • Cliquez sur “Next”.

  • Mettre les bios de chaque bécane.

Ce qui devrait donner ceci :

  • Cliquez sur “OK” et “Finish”.

Module

Nous utilisons içi une version légèrement modifiée du module “Atari800WinPlus.ahk” qui permet de prendre en charge les fichiers “.bin” :

(Cliquez sur le titre ci-dessous pour directement télécharger le fichier)

Atari800WinPlus.ahk
MEmu = Atari800WinPlus
MEmuV = 4.1
MURL = https://github.com/Jaskier/Atari800Win-PLus/downloads
MAuthor = wahoobrian
MVersion = 1.0
MCRC = A3F59E69
iCRC = 3F1E06FD
mId = 635532589929508800
MSystem = "Atari XEGS","Atari 8-Bit","Atari 5200"
 ;----------------------------------------------------------------------------; Notes:;; Settings are stored in the registry @ HKEY_CURRENT_USER\Software\Atari800WinPLus; CLI is the same is nonGUI emulator, Atari800. However, some of the CLI does not seem to do anything,; so registry updates are used in some cases.;; Enter rom images for OS-A, OS-B, XL/XE, 5200 and BASIC via Atari | Rom images;; Some Atari 8-Bit computer games require BASIC Revision A version. Not a bad idea to use that as a default,; since it seems to work for all games that require a version of BASIC.;; Mouse can be used to emulate paddles, lightgun and lightpen.;; This emulator has proven to be very buggy with lots of random crashes. Also fullscreen doesn't work properly.; To setup fullscreen mode, go to View->Graphics Options and then select:; - 640x480, partially clipped - This is the only real fullscreen mode, but the image will be clipped so it's; no good.; - 800x600 or 1024x768, full display - These will work without clipping, but the colors will be wrong and you; will also have the menu and toolbar always visible.; So it's basically useless. Besides fullscreen will make the emulator crash many times. It's highly suggested; than you use Atari800 instead of this emulator since it's a much better version.;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
 
mType := Object("Atari XEGS","xegs","Atari 8-Bit","xl","Atari 5200","5200")
ident := mType[systemName]; search object for the systemName identifier Atari800 uses
If !ident
ScriptError("Your systemName is: " . systemName . "`nIt is not one of the known supported systems for this Atari800 module: " . moduleName)
 ;clear out registry values - any leftovers from previous executions can cause the emu to crash
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, fileAutoboot,
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, fileTape,
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, pathDiskDrive1,
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, fileRomCartridge,
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, fileRomCurrent,
 
IfExist, % modulePath . "\" . systemName . ".ini"; use a custom systemName ini if it exists
settingsFile := modulePath . "\" . systemName . ".ini"
Else
settingsFile := modulePath . "\" . moduleName . ".ini"
 
7z(romPath, romName, romExtension, 7zExtractPath)
 
Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
fullscreenCLI := If (Fullscreen="true") ? "-fullscreen" : "-windowed"
MouseMode := IniReadCheck(settingsFile, romName, "MouseMode",A_Space,,1)
 
cliOptions = %fullscreenCLI%
 ;set mouse mode
if (MouseMode in Paddle,Lightgun,Lightpen)
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, inputState,66
if (MouseMode = "Paddle")
cliOptions := cliOptions . " -mouse pad"
else if (MouseMode = "Lightgun")
cliOptions := cliOptions . " -mouse gun"
else if (MouseMode = "Lightpen")
cliOptions := cliOptions . " -mouse pen"
else {
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, inputState,2
cliOptions := cliOptions . " -mouse off"
}
 
If (SystemName = "Atari 5200")
{
cliOptions := cliOptions . " -5200 "
 
CartType := IniReadCheck(settingsFile, romName, "CartType",0,,1)
if (!CartType) {
a5200cartMaps := Object(4,20,8,19,16,6,32,4,40,7)
FileGetSize, fsize, %romPath%\%romName%%romExtension%, K
CartType := a5200cartMaps[fsize]; search object for the systemName identifier Atari800 uses
}
 
If (!CartType)
ScriptError("Unknown cart type, make sure you define a CartType for this game on Atari 5200.ini")
Else
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, sysCartType,%CartType%
 
cliOptions := cliOptions . " -cart "
}
Else If (SystemName = "Atari XEGS")
{
MouseMode := IniReadCheck(settingsFile, romName, "MouseMode", "off",,1)
cliOptions := cliOptions . " -xegs -mouse " . MouseMode . " -cart "
}
Else
{
Basic := IniReadCheck(settingsFile, romName, "Basic","false",,1)
OSType := IniReadCheck(settingsFile, romName, "OSType",2,,1)
VideoMode := IniReadCheck(settingsFile, romName, "VideoMode","PAL",,1)
MachineType := IniReadCheck(settingsFile, romName, "MachineType","xl",,1)
CassetteLoadingMethod := IniReadCheck(settingsFile, romName, "CassetteLoadingMethod","Auto",,1)
CartType := IniReadCheck(settingsFile, romName, "CartType",0,,1)
Command := IniReadCheck(settingsFile, romName, "Command", "",,1)
SendCommandDelay := IniReadCheck(settingsFile, romName, "SendCommandDelay", "2000",,1)
MouseMode := IniReadCheck(settingsFile, romName, "MouseMode", "off",,1)
DisableSIOPatch := IniReadCheck(settingsFile, romName, "DisableSIOPatch","false",,1)
LoadBasicAsCart := IniReadCheck(settingsFile, romName, "LoadBasicAsCart","",,1)
 ;set machine type (OS-A, OS-B, XL)
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, sysMachineType,%OSType%
 ;set sio patch (fast i/o access)
if (DisableSIOPatch = "true")
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, sysEnableSIOPatch,0
else
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, sysEnableSIOPatch,1
 
basic := If (Basic="true") ? " -basic" : " -nobasic"
videomode := If (VideoMode="PAL") ? " -pal" : " -ntsc"
 
cliOptions := cliOptions . basic . videomode . " -"MachineType . " -mouse " . MouseMode
 
if (LoadBasicAsCart)
{
PathToBasicCart := AbsoluteFromRelative(EmuPath, LoadBasicAsCart)
CheckFile(PathToBasicCart)
cliOptions := cliOptions . " -cart " . PathToBasicCart
}
 
If romExtension in .a52,.car,.cart,.rom,.bin;Carts
{ cliOptions := cliOptions . " -cart"
RegWrite, REG_DWORD, HKCU, Software\Atari800WinPLus, sysCartType,%CartType%
}
Else if romExtension in .atr,.xfd,.atx,.bin;Disks
cliOptions := cliOptions . " -disk1"
Else if romExtension in .xex,.com,.bas,.bin;Programs
cliOptions := cliOptions . " -run"
Else if romExtension in .cas;Tapes
{
fullRomPath := romPath . "\" . romName . romExtension
if (CassetteLoadingMethod = "Auto")
cliOptions := cliOptions . " -boottape"
else
RegWrite, REG_SZ, HKCU, Software\Atari800WinPLus, fileTape, %fullRomPath%
}
Else
ScriptError("Your rom has an extension of " . romExtension . ", only these extensions are supported:`a52,car,cart,rom,cas,atr,xfd,atx,xex,com,bas,bin")
}
 
BezelStart("fixResMode")
Run(executable . " " . cliOptions . " """ . romPath . "\" . romName . romExtension, emuPath)
 
WinWait("Atari800Win PLus")
Sleep, 500
 ; script to look for previous crash window...; If previous run of emu crashed, auto-select No to avoid resetting ALL settings
IfWinExist, Atari800Win PLus ahk_class #32770
{
WinActivate, Atari800Win PLus ahk_class #32770
IfWinActive, Atari800Win PLus ahk_class #32770
{
SetControlDelay -1;ControlClick, Button2, Atari800Win PLus ahk_class #32770; Click No
PostMessage, 0x111, 7,,,Atari800Win PLus ahk_class #32770;Same as clicking No, but more reliable
}
}
 
WinWaitActive("Atari800Win PLus 4.1")
 
If (Fullscreen="true");CLI for fullscreen is broken so enable it through a PostMessage instead
{
PostMessage, 0x111, 32851,,,Atari800Win PLus 4.1
Sleep, 100
}
BezelDraw()
 
if (CassetteLoadingMethod="CLOAD+RUN") {
Sleep,1000
SendCommand("CLOAD{Enter}", 100)
SendCommand("{Enter}", 100)
Sleep, 3000
SendCommand("RUN{Enter}", 100)
}
 
SendCommand(Command, 1000)
 ;check if emu crashed, if it did, just get out - can we log/display a message so user knows what happened?
Sleep, 5000
IfWinExist, Atari800Win PLus Monitor
WinClose, Atari800Win PLus Monitor
 
FadeInExit()
Process("WaitClose", executable)
7zCleanUp()
FadeOutExit()
ExitModule()
 
MultiGame:
Log("MultiGame Label was run!")
 
If romExtension in .atr
{ Send !1; swaps a Disk
wvTitle:="Select disk to insert into drive 1 ahk_class #32770"
} Else If romExtension in .cas
{ Send !t; swaps a Tape
wvTitle:="Select tape image to attach ahk_class #32770"
} Else
ScriptError(romExtension . " is an invalid multi-game extension")
 
WinWait(wvTitle)
WinWaitActive(wvTitle)
OpenROM(wvTitle, selectedRom)
Log("Module - WinWaitActive`, ahk_class Atari800Win PLus 4.1`, `, 5")
WinWaitActive("Atari800Win PLus 4.1",,5)
WinActivate, Atari800Win PLus 4.1
Return
 
CheckCreateFile(file){
IfNotExist, %file%
FileAppend,, %file%
Return file
}
 
CloseProcess:
FadeOutStart()
BezelExit()
If (Fullscreen="true");If the process is closed on fullscreen then the emulator will always start to a black screen
{
PostMessage, 0x111, 32851,,,Atari800Win PLus 4.1
Sleep, 100
}
WinClose("Atari800Win PLus 4.1")
Return

Configuration

Ajouter l'émulateur Atari800WinPlus dans RocketLauncher :

  • Name : Atari800WinPlus
  • Path : ..\Emulators\Atari800WinPlus\Atari800Win.exe
  • Rom Extensions : bin|bas
  • Module : Atari800WinPlus.ahk
  • GUI Path :
  • CLI Parameters :

FIXME : mettre a jour l'image avec le changement de nom de configuration

Ajout du système

Il ne vous reste désormais plus qu'à ajouter le système dans Rocket Launcher :

  • Etape Choose System Name :
    • Name : Atari 8-bit
  • Etape Select Emulator :
    • Cliquez sur la loupe et sélectionnez Atari800WinPlus
  • Etape Select Rom Path(s) :
    • Cliquez sur le bouton + et sélectionnez le dossier de vos roms
  • Etape Database Creation :
    • Choisissez l'action que vous désirez concernant la base de données des jeux
  • Etape Overview :
    • Vérifiez la configuration et cliquez sur Finish

Liens

tutos/software/systemes/atari-8bit.txt · Dernière modification: 2017/02/14 11:41 de thesalan