Commodore 64

Tous les tutos concernant RocketLauncher.

Modérateurs : Nabubokon, Porko, Thesalan, Modérateurs

Avatar de l’utilisateur
micaelo14
Modérateur
Modérateur
Messages : 3379
Inscription : 19 oct. 2012 - 01:00
Localisation : Centre
A remercié : 98 fois
A été remercié : 165 fois

Commodore 64

Message par micaelo14 » 30 avr. 2016 - 12:06

Commodore 64
Hors-sujet
Retrouvez ce tutoriel sur le wiki HFS : Ajout de COMMODORE 64
Ajouté le 17/02/2017
Image
Descriptif
Le Commodore 64 utilise un microprocesseur 8 bits 6510 (un dérivé proche du 6502 qui a la possibilité de gérer des banques de mémoires en les amenant à la demande dans l'espace d'adressage du processeur) et dispose de 64 kilooctets de mémoire vive. Au Royaume-Uni, il a rivalisé en popularité avec le ZX Spectrum et a tiré bénéfice d'un clavier de taille normale et de puces graphiques et son plus avancées.

La puce graphique, VIC-II (en), fournit 16 couleurs, huit sprites, des capacités de défilement (scrolling), et deux modes graphiques bitmap. Le mode texte standard fournit 40 colonnes, comme la plupart des modèles PET de Commodore.

La puce sonore, SID, a trois voix, plusieurs formes d'ondes, modulations sonores et capacités de filtrage. Elle est très avancée pour son époque. Son concepteur, Bob Yannes, sera le cofondateur de la société de synthétiseur Ensoniq.

Le BASIC incorporé n'offre pas un moyen facile d'accéder aux capacités graphiques et sonores avancées de la machine ; les utilisateurs doivent donc utiliser les commandes PEEK et POKE pour adresser directement la mémoire afin d'obtenir le résultat escompté, ou alors utiliser des extensions comme Simon's BASIC, ou encore programmer directement en assembleur. Commodore avait une meilleure implémentation du BASIC, mais choisit finalement de vendre le C64 avec le même BASIC 2.0 utilisé dans le VIC-20 de peur que le C64 ne fasse chuter les ventes du PET/CBM.

Le C64 hérite des machines CBM et du VIC-20 un port utilisateur programmable (6522) et un port série propriétaire fonctionnant sur un principe proche de l'IEEE-488 et permettant de brancher (et d'adresser) des périphériques, en particulier une ou plusieurs unités de mono-disquettes de 5,25 pouces 1540 (lecteur de disquette du VIC-20), 1541 et 1542.

Avec cet ordinateur est (probablement) apparue une culture underground informatique connue sous le nom de scène démo.
Nous prendrons l'émulateur CCS64 en version 3.9

Et ce module:
CCS64
MEmu = CCS64
MEmuV = v3.9
MURL = http://www.ccs64.com/" onclick="window.open(this.href);return false;
MAuthor = djvj
MVersion = 2.0.3
MCRC = 1A625EB2
iCRC = B25B57CE
MID = 635038268878192501
MSystem = "Commodore 64"
;----------------------------------------------------------------------------
; Notes:
; To set fullscreen, set your VideoMode in RocketLauncherUI
; Does not support archived roms
; Not all roms autoload for an unknown reason
; fastload seems to not work

; Supports prg, p00, p01, prg, t64, d64, g41, g64, tap, crt, c64
; CLI Syntax:
; CCS64 rom [-cfg filename] [-fastload] [-normalload] [-autorun] [-manualrun] [-window] [hardsid id]
;
;If you get an directX9 error while using bezel, increase the value of the Bezel_Resize_Sleep option.
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

hideEmuObj := Object("CCS64 ahk_class #32770",1,"CCS64 ahk_class Afx:00400000:0",1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later
7z(romPath, romName, romExtension, 7zExtractPath)

If romExtension not in .c64,.crt,.d64,.g41,.g64,.p00,.p01,.prg,.t64,.tap
ScriptError("Your rom has an extension of " . romExtension . ", only these extensions are supported:`nc64,crt,d64,g41,g64,p00,p01,prg,t64,tap")

settingsFile := modulePath . "\" . moduleName . ".ini"
videoMode := IniReadCheck(settingsFile, "Settings", "VideoMode","1024x768x32",,1)
bezelResizeSleep := IniReadCheck(settingsFile, "Settings", "Bezel_Resize_Sleep","2500",,1) ; sleep in order to avoid directx9 error when trying to resize the game window while he rom is still loading
bezelTopOffset := IniReadCheck(settingsFile, "Settings", "bezelTopOffset",6,,1)
bezelBottomOffset := IniReadCheck(settingsFile, "Settings", "bezelBottomOffset",21,,1)
bezelLeftOffset := IniReadCheck(settingsFile, "Settings", "bezelLeftOffset",5,,1)
bezelRightOffset := IniReadCheck(settingsFile, "Settings", "bezelRightOffset",5,,1)

VMarray := Object("Window 1x",0,"Window 2x",1,"Window 3x",2,"640x480x32",3,"720x480x32",4,"720x576x32",5,"800x600x32",6,"1024x768x32",7,"1152x864x32",8,"1280x720x32",9,"1280x768x32",10,"1280x800x32",11,"1280x960x32",12,"1280x1024x32",13,"1360x768x32",14,"1366x768x32",15,"1600x900x32",16,"1600x1024x32",17,"1600x1200x32",18,"1680x1050x32",19,"1920x1080x32",20,"1920x1200x32",21,"640x480x16",22,"720x480x16",23,"720x576x16",24,"800x600x16",25,"1024x768x16",26,"1152x864x16",27,"1280x720x16",28,"1280x768x16",29,"1280x800x16",30,"1280x960x16",31,"1280x1024x16",32,"1360x768x16",33,"1366x768x16",34,"1600x900x16",35,"1600x1024x16",36,"1600x1200x16",37,"1680x1050x16",38,"1920x1080x16",39,"1920x1200x16",40)

BezelStart()

videoMode := VMarray[videoMode]
If !videoMode
ScriptError("Invalid Parameters for the key videoMode in " . settingsFile . " under the section [Settings]")

If bezelPath ; forcing windowed mode on bezel if user did not set it on module options
If (videoMode>2)
videoMode := 2

ccs64File := emuPath . "\C64.cfg"
IfNotExist, %ccs64File%
FileAppend,, %ccs64File% ; emu does not create this automatically
FileRead, ccs64CFG, %ccs64File%

; Setting videoMode setting in CFG
ccs64CFG := RegExReplace(ccs64CFG,"\$SCREENMODE=[0-9]+","$SCREENMODE=" . videoMode) ; setting windowed resolution
SaveFile(ccs64CFG, ccs64File)

HideEmuStart()

SetTimer, ClearErrorMsg, 10

Run(executable . " """ . romPath . "\" . romName . romExtension . """"" -cfg ccs.cfg -autorun", emuPath)

WinWait("CCS64 ahk_class Afx:00400000:0")
WinWaitActive("CCS64 ahk_class Afx:00400000:0")

If bezelPath
Sleep, %bezelResizeSleep%

BezelDraw()
HideEmuEnd()
FadeInExit()

SetTimer, ClearErrorMsg, Off

Process("WaitClose", executable)
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


SaveFile(text,file) {
FileDelete, %file%
FileAppend, %text%, %file%
}

ClearErrorMsg:
IfWinExist, CCS64 ahk_class #32770
{ WinGetText, CCS64ErrorText, CCS64 ahk_class #32770
If InStr(CCS64ErrorText,"Direct") {
WinActivate, CCS64 ahk_class #32770
Send, {Enter}
}
}
Return

CloseProcess:
FadeOutStart()
WinClose("CCS64 ahk_class Afx:00400000:0")
Return
Paramétrer RL ainsi:

Image

Je n'ai testé tout les jeux mais dans l'absolu ça marche bien :D

Répondre

Revenir à « Tutos pour RocketLauncher »