Outils pour utilisateurs

Outils du site


tutos:software:systemes:atari-xegs

Ceci est une ancienne révision du document !


Ajout du système Atari XEGS

Auteur : micaelo14

Présentation

Sous les auspices de Jack Tramiel , Atari réédité deux consoles de jeux en 1986: l' Atari 7800 , qui avait déjà été publié dans un bref essai en 1984; et l' Atari 2600 Jr. , une version mise à jour de l'Atari VCS / 2600. Les XEGS suivies, la construction sur la ligne de l' ordinateur 8 bits d'Atari qui avait commencé avec l'Atari 400 et 800. En pratique , le XEGS est un Atari 65XE reconditionné, dans un mouvement semblable à celle adoptée pour l' Atari 5200 , qui est un reconditionné de l'Atari 400/800 computer. Alors que les 5200 internes a légèrement modifiés, le XEGS est compatible avec la gamme existante logiciels Atari8-bit et des périphériques , et pourrait donc fonctionner comme un ordinateur.

Atari a conçu la console dans un plan visant à augmenter la part de marché de la console de l'entreprise tout en améliorant les ventes de sa famille d'ordinateur 8-bit. Fournir un «ordinateur à partir“ et une “console de jeu sophistiqué» dans un seul appareil, a été pensé pour convaincre plus de détaillants et les développeurs de logiciels pour soutenir la plate-forme. En mai 1987,le directeur Atari des communications, Neil Harris, a dévoilé ce plan à la communauté Atari . Il est à noter que la XEGS était destinée à poursuivre la ligne 8 bits en fournissant des mass-marchands d'un dispositif qui était plus attrayant pour leurs marchés. Des jeux populaires d'ordinateurs depuis le début des années 1980 tels que Archon: la lumière et les ténèbres , Lode Runner, et Midnight magic David ont fait une grande partie du catalogue XEGS.

Le système a co-existé avec l'Atari 2600 Jr. et Atari 7800 sur tablettes des magasins et a parfois été présenté aux côtés de ces systèmes Atari dans des publicités imprimées et à la télévision.

Installation sous RocketLauncher (ou HyperLaunch 3)

Installation de l'émulateur

Pour ce système l'émulateur utilisé est Atari800WinPLus en version 4.1 (téléchargeable depuis le site officiel : https://github.com/Jaskier/Atari800Win-PLus/downloads)

A installer dans \Emulators\Atari800WinPlus\

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 utiliserons un module légèrement modifié (pour accepter les .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 de l'émulateur

Ajouter l'émulateur Atari 8bit dans RocketLauncher :

  • Name : Atari XEGS
  • Path : ..\Emulators\Atari800WinPlus\Atari800Win.exe
  • Rom Extensions : rom|zip
  • Module : Atari800WinPlus.ahk
  • GUI Path :
  • CLI Parameters :

Problèmes rencontrés

L'émulateur se lance mais pas en plein écran (pour être honnête, je m'y suis pas trop attardé ^^), si vous avez la solution…

Pour plus d'informations, consultez le forum ci-dessous.

Forum

tutos/software/systemes/atari-xegs.1486254883.txt.gz · Dernière modification: 2017/02/05 01:34 de thesalan