ACE 1.17 L'émulateur d'Amstrad CPC/CPC+ acidulé. Copyright © 2011-2018 Philippe Rimauro Tous droits réservés. Introduction - Le pourquoi et le comment Prérequis - Ce qu'il faut pour en profiter Installation - La procédure d'installation Fonctionnalités - Le champ du possible Utilisation - Comment marche l'émulateur Configuration - ACE à votre convenance Scripts & outils - Pour aller encore plus loin Foire aux questions - Conseils et explications utiles Bugs connus - Les quelques problèmes connus À venir - Ce que les prochaines versions apporteront Historique - Comment ACE a évolué au cours du temps Programmation - D'où vient tout cela ? Le site officiel : http://ace.cpcscene.net. Et aussi n'hésitez pas à : * lire notre fanzine sous forme de wiki : http://quasar.cpcscene.net, * télécharger des jeux, démos et outils : http://www.cpc-power.com ,
Contents | Index | < Browse | Browse >
Introduction Il n'avait pas échappé au petit blond à lunettes qu'aucun émulateur d'Amstrad CPC n'existait pour MorphOS ! Alors que les PCistes s'amusaient allègrement avec une bonne dizaine d'émulateurs plus ou moins médiocres, nous, nous n'avions rien ! Cela ne pouvait pas durer ! Ainsi, je me suis mis au travail, et voici ACE CPC Emulator. Et comme MorphOS mérite ce qu'il y a de mieux, ACE n'a pas simplement pour but d'offrir un petit émulateur CPC aux utilisateurs de MorphOS, mais véritablement le meilleur émulateur CPC toute plate-formes confondues ! ACE n'est basé sur aucun émulateur existant et a été programmé de zéro en prenant le comportement du véritable CPC comme base ; il est écrit entièrement en langage C et son interface graphique repose sur MUI (Magic User Interface). Bien sûr, ACE n'est pas encore complet. Toutefois, vous pouvez déjà utiliser la quasi-totalité des programmes CPC et CPC+ sans aucun problème de compatibilité, et avec une qualité supérieure à celle des meilleurs émulateurs CPC disponibles sur PC à ce jour.
Contents | Index | < Browse | Browse >
Prérequis Configuration minimale requise : (pour un fonctionnement à la frame en overlay) * MorphOS 3.11 ou supérieur, * 2 Mo d'espace disque dur, * 10 Mo de mémoire vive, * un microprocesseur à 700 MHz pour l'émulation CPC (1 GHz pour l'émulation CPC+). Vous aurez besoin de plus de puissance processeur si vous désactivez l'overlay (déconseillé !).
Contents | Index | < Browse | Browse >
Installation Il n'y a pas véritablement besoin d'installation. Copiez simplement le répertoire d'ACE où vous désirez. Note 1 : ACE a besoin de la classe MCC_HexEdit de Miloslaw Smyk pour afficher certaines informations dans les fenêtres avancées. Si elle n'est pas installée vous ne pourrez pas les utiliser, mais cela n'affectera pas les fonctionnalités standard d'ACE. Note 2 : pour utiliser les scripts REXX fournis vous aurez besoin de la rexxsyslib.library installée dans votre répertoire LIBS: (sinon, les commandes AREXX peuvent toujours être utilisées de façon unitaire grâce à RxCmd ou via Lua). Note 3: pour encoder les vidéos enregistrées avec ACE dans un format vidéo standard, vous aurez besoin d'installer le port MorphOS de ffmpeg réalisé par fab1. Il devra être dans votre chemin par défaut afin de pouvoir utiliser directement le script d'encodage généré par ACE avec chaque enregistrement vidéo.
Contents | Index | < Browse | Browse >
Fonctionnalités La version actuelle d'ACE ne dispose pas encore de toutes les fonctionnalités prévues mais la plupart des jeux et des démos CPC et CPC+ fonctionnent déjà parfaitement. En fait, la qualité est d'ores et déjà supérieure à ce que font les gros émulateur CPC existants sur PC/Windows depuis de nombreuses années (enjoy!). Émulateur : * Système : · gestion de tous les modèles de CPC et CPC+, · émulation complète du Z80, · jusqu'à 256 ROMs d'extension, · mémoire étendue jusqu'à 512Kio. * Vidéo : · émulation fidèle des différents types de CRTC, · émulation totale de toutes les variantes du Gate Array (gestion parfaite des split-rasters), · émulation totale de l'ASIC des CPC+ (précis au quart de cycle près), · émulation des CTM644, GT65 et MM12 (y compris les comportements analogiques dynamiques). * Audio : · émulation totale et très fidèle du PSG (AY-3-8912), · émulation extrêmement précise des DMA audio des CPC+. * Périphériques : · émulation fidèle mais incomplète du FDC (les instructions Format et Scan ne sont pas encore émulées), · émulation fidèle des deux lecteurs de disquettes (la vitesse de rotation réelle est considérée, les interrupteurs de changement manuel de face et de lecteur sont gérés), · émulation du port cartouche des CPC+ et de la GX4000, · émulation de l'interface cassette via des fichiers audio (en lecture seule), · émulation fidèle du clavier, y compris des interférences lors de l'appui simultanné de certaines touches, · émulation du Magnum Light Phaser et du Trojan Light Phazer via la souris. · passerelle vers le disque dur de la machine hôte via l'interface cassette du CPC pour pouvoir accéder directement aux fichiers. · reconfiguration automatique des touches du clavier du CPC en fonction du clavier utilisé sur la machine hôte. Interface graphique : * configuration simple et modulaire du CPC émulé grâce aux types d'outils de l'icône ou en ligne de commande, * possibilité de changer de type de CRTC, la version du Gate Array et le modèle d'écran à la volée sans avoir besoin de relancer le programme en cours d'exécution dans ACE, * gestion des fichiers SNA et DSK (standards et étendus) avec détection automatique des DSK mal générés et tentative de correction à la volée, * gestion des fichiers CPR pour les cartouches CPC+ et GX4000, * support de l'overlay avec respect du ratio des pixels, * support d'un mode plein écran avec choix du mode graphique à utiliser afin de retrouver la fluidité du 50Hz si votre moniteur le permet, * interface masquable/affichable aussi bien en mode fenêtré qu'en plein écran, * affichage des diodes d'activité des lecteurs de disquettes en surimpression vidéo lorsque l'interface est masquée, * gestion évoluée des points d'arrêt sur des conditions prédéfinies (HBL, VBL, interruption, etc.), des coordonnées graphiques, des adresses d'exécution, des accès en mémoire ou des ports entrée-sortie (avec possibilité de condition complexe, de masque sur l'adresse et/ou la valeur) voire l'exécution de scripts, * affichage d'un curseur vidéo signalant la position du canon à électron, en pause ou en pas-à-pas, * éditeur de mémoire avec gestion de la commutation des banks et des ROMs, détection automatique de la page de code des caractères en fonction de la ROM firmware utilisée, * désassembleur Z80 avec mise en évidence des opcodes et boutons de navigation rapide dans le code, * éditeur de CRTC avec accès en modification à tous les registres en temps réel, * éditeur de Z80 avec accès en modification à tous les registres en temps réel, * analyseur Gate Array avec affichage de la palette, du mode graphique et du compteur de gestion des interruptions en temps réel, * analyseur PSG avec décodage des notes, de leur justesse et affichage de tout un tas d'informations enrichies en temps réel, * analyseur ASIC avec affichage des principaux registres de l'ASIC en temps réel, * analyseur sprites hard avec palette et contenu en temps réel, * analyseur DMA avec suivi du code en cours d'exécution en temps réel, * fenêtre d'informations vidéo avec affichage de la fréquence de balayage et de la position courante du canon à électron en temps réel, * possibilité d'utiliser le clavier à la place d'une manette de jeu, * fenêtre de réglage de l'écran avec le choix du type et le réglage de la luminosité et des balayages horizontal et vertical, * contrôle du volume sonore, * captures d'écran en haute qualité, * enregistrement vidéo modulaire configurable, * aide en ligne et bulles d'aides MUI présentes à tous les niveaux pour assister les débutants, * localisation en français, en anglais et en allemand (y compris l'aide en ligne). Interface programmable : * Gestion de greffons d'extension permettant à n'importe qui ayant quelques notions en langage C d'ajouter le support d'extensions se connectant sur le port joystick, le port imprimante ou le port extension du CPC (hors gestion mémoire). Par défaut sont fournis : · un greffon pour le support des deux manettes de jeu (jusqu'à 3 boutons) à partir de vraies manettes connectés sur la machine hôte (USB ou autre). · un greffon offrant le support de la Digiblaster/Soundplayer, · un greffon de redirection du port imprimante du CPC vers un fichier, · un greffon offrant le support de la souris Kempston, · un greffon offrant le support de la souris AMX. * Mise à disposition d'une interface AREXX permettant de totalement piloter l'émulateur et de manipuler sa mémoire, pour automatiser tout un tas de choses, mais aussi pour l'utiliser comme une véritable station de développement depuis des scripts REXX (ou Lua).
Contents | Index | < Browse | Browse >
Configuration ACE dispose d'options qui peuvent être activées via les types d'outils lors du lancement depuis Ambient, ou via les arguments lors du lancement en ligne de commande. Une fois lancé, la plupart des options principales d'ACE demeurent accessibles directement depuis le menu "Préférences" de l'interface. Types d'outils/Arguments : * RS=RAMSIZE/K/N : permet de changer la taille de la mémoire du CPC. Le minimum est de 64Kio et le maximum de 576Kio (64Kio de mémoire centrale plus 512Kio de mémoire d'extension). Seules les valeurs multiples de 64 sont autorisées. La valeur par défaut est de 128Kio. * OS=OSVERSION/K : permet de choisir la version des ROMs du système d'exploitation du CPC à utiliser. Il existe quatre versions : la version 1 était intégrée aux CPC464, la version 2 aux CPC664, la version 3 aux CPC6128 et la version 4 était contenue dans la cartouche système des 464plus et 6128plus. En pratique, toutes les versions du système d'exploitation sont compatibles avec tous les modèles de CPC. Certaines versions du système d'exploitation existent pour différents pays afin d'adapter le clavier et la page de code des caractères ; ACE chargera la version spécifiée dans la langue correspondant à votre système hôte si possible. Les versions 1 et 3 existent pour le français, l'espagnol, le danois et l'anglais, la version 4 pour le français, l'espagnol et l'anglais, la version 2 n'existe qu'en anglais. Le système d'exploitation se compose de trois ROMs : - le firmware qui est la ROM de démarrage, - le BASIC qui est la ROM applicative par défaut, - l'AMSDOS qui est la ROM disque (utilisée uniquement sur les systèmes équipés d'une interface disque). Toutes les ROMs du système d'exploitation se trouvent dans le tiroir "System" d'ACE. Par ailleurs, vous avez la possibilité de choisir unitairement les ROMs système à charger grâce aux types d'outil FIRMWARE/K, BASIC/K et AMSDOS/K. Par défaut la version 3 du système d'exploitation sera utilisée ; c'est celle qui est compatible avec la quasi-totalité des logiciels. * FW=FIRMWARE/K : permet de choisir la ROM à utiliser pour le firmware du CPC. Il doit s'agir d'un fichier ROM binaire de 16384 octets maximum (voire 16512 octets si l'entête binaire de l'AMSDOS est incluse). Si le type d'outil n'est pas spécifié alors la ROM firmware correspondant à la version du système d'exploitation du CPC choisie (voir le type d'outil OSVERSION/K) et à la langue de votre système hôte sera utilisée. Par défaut c'est "System/Firmware_?x.rom" qui sera installé (où x est le numéro de version du système d'exploitation et ? une lettre représentant le pays). * BAS=BASIC/K : permet de choisir la ROM à utiliser pour le BASIC du CPC. Il doit s'agir d'un fichier ROM binaire de 16384 octets maximum (voire 16512 octets si l'entête binaire de l'AMSDOS est incluse). Attention, toutes les versions de la ROM BASIC ne sont pas compatibles avec toutes les versions de la ROM firmware ! Utilisez le BASIC 1.0 pour les firmwares version 1, le BASIC 1.1 pour les v2 et le BASIC 1.2x ou 1.4 pour les v3 ou v4 (notez que les BASIC 1.2x et 1.4 s'annoncent comme étant le BASIC 1.1 au démarrage du CPC). Par défaut c'est "ROMs/Basic_v1.2x.rom" qui sera utilisé (où x est un numéro de révision qui dépend du pays, 3 pour la France, 1 pour l'Espagne et 0 pour tous les autres pays). * CPM=AMSDOS/K : permet de choisir la ROM à utiliser en tant qu'AMSDOS. Il doit s'agir d'un fichier ROM binaire de 16384 octets maximum (voire 16512 octets si l'entête binaire de l'AMSDOS est incluse). L'AMSDOS est en fait la ROM numéro 7 par défaut et sera remplacée par n'importe quelle ROM 7 externe (configurable via le type d'outil ROM7/K). Attention, toutes les versions de la ROM AMSDOS ne sont pas compatibles avec toutes les versions de la ROM firmware ! Utilisez l'AMSDOS 0.5 pour les firmwares version 1 à 3, et l'AMSDOS 0.7 pour la version 4. En outre, PARADOS, l'excellente ROM disque compatible AMSDOS de Richard Wilson, fonctionne avec toutes les versions du firmware. Par défaut c'est "System/CPM05.rom" qui sera utilisé pour les versions 1 à 3 et "System/CPM07.rom" pour la version 4. * ROM0/K : permet de choisir la ROM d'extension 0 à utiliser. Lorsqu'elle est présente, la ROM 0 a la particularité d'être la ROM de boot qui sera exécutée par le firmware à la place du BASIC. Elle doit donc forcément être une ROM de premier plan (comme un autre BASIC, le CP/M ou le Hacker). Par défaut aucune n'est installée. * ROM1/K : permet de choisir la ROM d'extension 1 à utiliser. Par défaut aucune n'est installée. * ROM2/K : permet de choisir la ROM d'extension 2 à utiliser. Par défaut aucune n'est installée. * ROM3/K : permet de choisir la ROM d'extension 3 à utiliser. Par défaut aucune n'est installée. * ROM4/K : permet de choisir la ROM d'extension 4 à utiliser. Par défaut aucune n'est installée. * ROM5/K : permet de choisir la ROM d'extension 5 à utiliser. Par défaut aucune n'est installée. * ROM6/K : permet de choisir la ROM d'extension 6 à utiliser. Par défaut aucune n'est installée. * ROM7/K : permet de choisir la ROM d'extension 7 à utiliser. Historiquement cet emplacement de ROM est utilisé par la ROM de gestion des lecteurs de disquettes (l'AMSDOS). Vous devriez donc toujours y mettre une ROM CP/M ou la ROM PARADOS (de Richard Wilson) afin d'éviter des problèmes de compatibilité avec certains programmes. Si vous utilisez une ROM 7, alors la ROM AMSDOS intégrée sera automatiquement invalidée. Par défaut aucune n'est installée. * ROM8/K : permet de choisir la ROM d'extension 8 à utiliser. Par défaut aucune n'est installée. * ROM9/K : permet de choisir la ROM d'extension 9 à utiliser. Par défaut aucune n'est installée. * ROM10/K : permet de choisir la ROM d'extension 10 à utiliser. Par défaut aucune n'est installée. * ROM11/K : permet de choisir la ROM d'extension 11 à utiliser. Par défaut aucune n'est installée. * ROM12/K : permet de choisir la ROM d'extension 12 à utiliser. Par défaut aucune n'est installée. * ROM13/K : permet de choisir la ROM d'extension 13 à utiliser. Par défaut aucune n'est installée. * ROM14/K : permet de choisir la ROM d'extension 14 à utiliser. Par défaut aucune n'est installée. * ROM15/K : permet de choisir la ROM d'extension 15 à utiliser. Par défaut aucune n'est installée. * A=DRIVEA/K : permet de spécifier le nom d'une image disque à précharger dans le lecteur A. * B=DRIVEB/K : permet de spécifier le nom d'une image disque à précharger dans le lecteur B. * TAPE/K : permet de spécifier le nom d'un fichier audio à précharger dans le lecteur de cassette. * SNA=SNAPSHOT/K : permet de spécifier le nom d'un fichier SNA à précharger dans le CPC émulé. * CPR=CARTRIDGE/K : permet de spécifier le nom d'une cartouche à précharger dans le CPC+ émulé. À noter que spécifier une cartouche à précharger force le mode d'émulation CPC+ au démarrage. * FILES/K/M : permet de spécifier plusieurs fichiers à précharger dans ACE au démarrage. La liste peut contenir des fichiers de tout type, image disque, cartouche, fichier audio ou fichier SNA ; ACE les utilisera en combiné et en fonction de leur type. Si la liste contient plusieurs fichiers d'image disque alors le premier sera chargé dans le lecteur A, le second dans le lecteur B et tous les autres seront ignorés. Pour tous les autres types de fichiers, seul le premier de chaque type sera utilisé et les autres seront ignorés. * PLUS=CPC+=AMSTRADPLUS/S : permet d'activer l'émulation CPC+ au démarrage. Le CRTC type 3 sera automatiquement sélectionné et l'option CRTC est ignorée. * CRTC/K/N : permet de choisir le type de CRTC à utiliser au démarrage. Vous pouvez changer le type de CRTC à tout moment pendant que ACE tourne. Par défaut, c'est le CRTC 1 qui sera utilisé. * BRAND=MANUFACTURER/K : permet de choisir la marque du CPC à émuler. Toutes les marques prévues par Amstrad sont possibles (ISP, Triumph, Saisho, Solavox, Awa, Schneider, Orion et Amstrad). Par défaut Amstrad sera la marque utilisée, sauf pour les pays germanophones où ce sera Schneider. * 64K=64KEXPMEMSCHEME/S : active l'émulation d'un CPC équipé d'uniquement 64Kio de mémoire sur la carte mère (typiquement les CPC464, CPC664 et 464 plus). Sur ces modèles, c'est la RAM centrale plutôt que la RAM d'extension interne qui est commutée lorsque l'on tente d'activer des pages mémoire inexistantes. * NDI=NODISCINTERFACE/S : désactive complètement l'émulation de l'interface disquette. Ceci vous permet d'émuler un CPC464 ou un 464plus de base. L'interface disquette peut en outre être activée ou désactivée à tout moment via le menu pendant que ACE tourne. * LD=LIGHTDEVICE/K : active l'émulation d'un pistolet optique via le pointeur de souris. Deux modèles sont gérés : le Magnum Light Phaser et le Trojan Light Phazer (spécifique CPC+). Passez un argument en utilisant respectivement les valeurs MagnumLightPhaser ou TrojanLightPhazer pour les utiliser. Les pistolets optiques peuvent en outre être déconnectés ou reconnectée à tout moment via le menu pendant que ACE tourne. Il est conseillé de ne les activer que lorsque vous en avec besoin. * DKB=DKTRONICSBUGS/K : active l'émulation des bugs de commutation mémoire des extensions DK'Tronics. Lorsque l'on utilise une DK'Tronics, la ROM haute se retrouve sur la plage &4000-&7FFF au lieu de &C000-&FFFF si elle est commutée lorsque les pages mémoire &4000-&7FFF et &C000-&FFFF sont permutées (mode &C3 du Gate Array) et le masquage par la page I/O ASIC des CPC+ n'est pas géré. * TAP=TAPEAUTOPLAY/S : active la lecture automatique des cassettes dès leur insertion dans le lecteur. Vous n'aurez plus à presser "Lecture" à chaque fois. Cette option peut être activée ou désactivée à tout moment via le menu pendant que ACE toune. * NTS=NOTAPESOUND/S : désactive le retour audio des cassettes qui est normalement entendu dans le haut parleur du CPC. Cette option peut être activée ou désactivée à tout moment via le menu pendant que ACE toune. * NTS=NOTAPERELAY/S : désactive l'émulation du bruit mécanique que fait le relais qui commande la mise en marche du moteur des cassettes. * THD=TAPE2HD/S : active la passerelle qui permet d'accéder aux fichiers de votre disque dur directement depuis le système d'exploitation du CPC via l'interface cassette (par défaut vous aurez accès aux fichiers stockés dans le tiroir "Share"). Le répertoire partagé peut être choisi en utilisant l'option TAPE2HDPATH. Cette passerelle peut également être activée et désactivée à tout moment via le menu pendant que ACE tourne. * TAPE2HDPATH/K : permet de choisir le répertoire partagé entre le CPC émulé et la machine hôte via la passerelle disque dur. Par défaut le tiroir "Share" d'ACE est utilisé. * AV=AUDIOVOLUME/K/N : choix du volume initial. Le volume peut aussi être modifié à tout moment pendant que ACE tourne. Par défaut le volume est à 100%. * AU=AHIUNIT/K/N : choix de l'unité AHI à utiliser. Par défaut ACE utilise l'unité 0. * NAF=NOAUDIOFILTER/S : par défaut ACE filtrera les fréquences émises par le PSG (Programmable Sound Generator) émulé qui ne sont pas dans le spectre auditif (le PSG, aka AY-3-8912, peut en effet émettre des sons jusqu'à 62,5kHz alors que l'oreille humaine n'entend que jusqu'à 20kHz). De tels sons ne sont généralement pas échantillonnables par la carte son de l'hôte qui ne fera que reproduire des sons parasites à la place (à cause de ce que l'on appelle le problème de recouvrement). Si vous disposez d'une carte son professionnelle ou que vous préférez faire confiance au filtre du pilote AHI de votre machine, vous pouvez désactiver ce filtre grâce à cette option (vivement déconseillé). * NS=NOSOUND/S : par défaut ACE tentera de jouer les sons. Cette option permet de désactiver le son au lancement. Le son peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * FULL=FULLSCREEN/S : commute ACE en mode plein écran dès le démarrage. Le mode plein écran peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * ID=SCREENMODE/K/N : par défaut ACE clonera l'écran d'Ambient pour ouvrir le sien lors du passage en mode plein écran ; c'est généralement le comportement que vous souhaiterez. Toutefois, vous pouvez spécifier explicitement un identifiant de mode graphique à utiliser. Ceci peut par exemple être intéressant si vous disposez d'un mode écran en 50Hz (voire en 100Hz) et que vous voulez en faire profiter ACE afin de gagner en fluidité (la plupart des démos et des jeux Amstrad sont en 50Hz). * NO=NOOVERLAY/S : par défaut ACE tentera d'utiliser l'overlay vidéo. Positionner cette option lui demande de ne pas le faire. Généralement l'utilisation de l'overlay est toujours préférable car il permet un gain en vitesse notable. Le mode overlay peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * NW=NOWARN=NOWARNINGS/S : par défaut, ACE affichera des messages d'avertissement s'il constate une anomalie dans les images disque ou les fichiers SNA qu'il charge. Cette option permet de désactiver ces messages. Les messages s'avertissement peuvent en outre être activés/désactivés à tout moment via le menu pendant que ACE tourne. * NSI=NOSNAPSHOTICONS/S : par défaut, ACE sauve les instantanés avec une icône (un fichier .info) repésentant ce qui était affiché à l'écran au moment de la sauvegarde. Cette option permet de ne plus sauver ces icônes. La sauvegarde des icônes peut en outre être activée/désactivée à tout moment via le menu pendant que ACE tourne. * NAG=NOANTIALIASEDGRABS/S : par défaut, ACE sauve les captures d'écran en y appliquant un lissage pour se rapprocher du rendu du moniteur couleur des CPC. Cette option permet de désactiver ce filtre et de sauver les captures d'écran sans aucun filtre. Le lissage des captures d'écran peut être activé/désactivé à tout moment via le menu pendant que ACE tourne. * OSC=OFFSCREENCOLOR/K/N : lorsque ACE tourne dans une fenêtre ou sur un écran qui n'a pas les mêmes proportions que l'écran du CPC, des marges sont alors automatiquement ajoutées en haut et en bas ou à droite et à gauche afin de compenser et de conserver un affichage non déformé. Cette option permet de choisir la couleur à utiliser pour ces marges. La couleur doit être spécifiée sous la forme d'un entier 24 bits RVB. La valeur par défaut est un gris très sombre (0x181820). * MS=MAXFRAMESKIP/K/N : indique le nombre maximal de trames que l'émulateur est autorisé à sauter en enfilade pour garantir la vitesse d'émulation. Bien que déconseillée la plupart du temps, cette option peut être intéressante sur les machines peu puissantes afin de conserver une émulation du CPC en pleine vitesse. La valeur par défaut est de 0 ; le saut de trames est interdit. * KJ=KEYJOY/S : permet d'utiliser les touches du clavier à la place de la manette 0 ("haut", "bas", "gauche", "droite", "control" (feu 2), "alt de gauche" (feu 1), et "majuscule de gauche" (feu 3) sont utilisées). Cette option peut en outre être activée/désactivée à tout moment via le menu pendant que ACE tourne. * AKM=ADAPTKEYMAP/S : permet de reconfigurer automatiquement la ROM firmware du CPC afin de correspondre au mieux à la disposition des touches utilisée sur la machine hôte. Cette option ne fonctionnera que si vous utilisez une ROM firmware standard. Elle est particulièrement indiquée si vous faites tourner ACE sur une machine disposant d'un type de clavier n'ayant jamais existé sur CPC, mais peut éventuellement être incompatible avec certains logiciels CPC mal conçus. Cette option peut en outre être activée/désactivée à tout moment via le menu pendant que ACE tourne. * AP=AUTOPAUSE/S: active la mise en pause et le redémarrage automatique de l'émulation lorsque la fenêtre principale devient inactive puis active à nouveau. Cette option peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * WS=WILDSPEED/S : désactive la limitation de l'émulation à la vitesse réelle du CPC. Dans ce mode débridé, l'émulateur tourne à la vitesse maximale permise par votre ordinateur. Toutefois, la vitesse relative des divers périphériques du CPC est respectée et la qualité de l'émulation est donc conservée (y compris pour les accès disque). Ce mode débridé peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * MR=MAXFRAMERATE/K/N : indique le nombre maximal de trames par secondes à afficher lorsque la vitesse d'émulation est débridée. Plus elle est élevée moins la vitesse débridée sera grande car le rafraichissement vidéo est ce qui prend le plus de temps processeur. Notez également qu'utiliser ici des valeurs supérieures au rafraissichement de votre écran (généralement 60 Hz) est dans tous les cas inutile. La valeur par défaut est de 10. Sans effet si l'option WILDSPEED n'est pas activée. * FD=FASTDRIVES/S : active le mode haute vitesse des lecteurs de disquettes. Les accès aux pistes et aux secteurs sont alors instantanés ce qui accélère grandement les accès disque. Attention toutefois à utiliser cette option avec prudence car elle est incompatible avec certains logiciels protégés ou démos. Ce mode haute vitesse peut en outre être activé/désactivé à tout moment via le menu pendant que ACE tourne. * CKR=CARTRIDGESKEEPEXTROM/S : désactive l'invalidation automatique des ROMs d'extension lorsqu'une cartouche CPC+ est insérée. Cette invalidation permet d'éviter les problèmes avec les cartouches incompatibles avec la présence de ROMs d'extension mais dans certains cas particuliers vous pourriez vouloir les conserver malgré tout (par exemple lors de l'utilisation de la cartouche système d'origine au lieu de celle émulée par ACE). * NPS=NOPLUSSCREEN/S : désactive le réglage automatique de l'écran lorsque l'émulation CPC+ (ou CRTC 4) est activée. En effet, les écrans de CPC+ n'ont pas le même ajustement horizontal que les écrans de CPC. Comme l'ASIC génère une vidéo décalée d'une microseconde par rapport au Gate Array des CPC les réglages d'usine des écrans étaient différents. * NPU=NOPLUSUNSTABLEHIZ: désactive l'émulation de l'instabilité de l'état de haute impédance lors de la lecture d'adresses invalides dans la page de registres de l'ASIC des CPC+. Il sera alors toujours renvoyé 0 (comme sur la plupart des CPC+ nus) au lieu d'une valeur aléatoire (comme lorsque des extensions gérant la mémoire telles que la Ramcard ou la Multiface Two sont connectées). * OVER=OVERSCAN/S: par default ACE utilise les bordures de l'écran standard des CPC pour définir la partie visible de l'affichage vidéo. Cette option fait en sorte qu'ACE affiche aussi les zones de la sortie vidéo qui ne sont normalement pas visibles. Cette option peut aussi être activée et désactivée pendant que ACE tourne via la fenêtre des préférences de l'écran. * LM=LAUNCHMODE/K : choix du mode de lancement de l'exécutable d'ACE. Par défaut ACE demande à l'utilisateur ce qu'il préfère faire lorsqu'une autre instance d'ACE tourne déjà. Si la valeur SINGLE est donnée alors une seule instance est permise et chaque nouvelle tentative de lancement va mettre l'instance qui tourne déjà en avant plan et y insèrera les médias founis en paramètre. Si la valeur MULTIPLE est fournie, alors une nouvelle instance d'ACE est lancée à chaque fois. * UBC=USERBREAKPOINTCOMMAND/K : choix d'une commande à exécuter à chaque fois qu'un point d'arrêt s'active. Le code "%s" peut être utilisé dans cette commande pour récupérer le nom du port AREXX de l'instance d'ACE. Par défaut aucune commande n'est lancée. * DISCSPATH/K : choix du chemin d'accès par défaut aux fichiers image disque pour les requêtes lors de l'insertion d'un nouveau disque. Par défaut le tiroir "Discs" d'ACE est utilisé. * TAPESPATH/K : choix du chemin d'accès par défaut aux fichiers audio pour les requêtes lors de l'insertion d'une nouvelle cassette. Par défaut le tiroir "Tapes" d'ACE est utilisé. * CARTRIDGESPATH/K : choix du chemin d'accès par défaut aux fichiers cartouches pour les requêtes lors de l'insertion d'une nouvelle cartouche. Par défaut le tiroir "Cartridges" d'ACE est utilisé. * SNAPSHOTSPATH/K : choix du chemin d'accès par défaut aux fichiers SNA pour les requêtes lors du chargement ou de la sauvegarde. Par défaut le tiroir "Snapshots" d'ACE est utilisé. * GRABSPATH/K : choix du chemin où sauver les captures d'écran. Par défaut le tiroir "Grabs" d'ACE est utilisé. * PLUGINSPATH/K : choix du chemin depuis lequel charger les greffons d'extension. Par défaut le tiroir "Plugins" d'ACE est utilisé. * RECORDPATH/K : choix du chemin où sauver des fichiers d'enregistrement vidéo bruts. Par défaut le tiroir "Recording" d'ACE est utilisé. * D=DEBUG/S : sans effet dans la version publique d'ACE.
Contents | Index | < Browse | Browse >
Utilisation Outre la fenêtre principale qui contient l'émulateur lui-même, ACE dispose de fenêtres secondaires qui permettent d'observer voire de modifier en temps réel le comportement de l'émulation. Parallèlement, ACE offre également une passerelle vers le disque dur et une interface AREXX qui exaucera vos rêves les plus fous. Fenêtre principale - L'émulateur à proprement parler Fenêtre 'À propos du CPC émulé' - Tout savoir sur lui ! Éditeur de mémoire - À l'assaut des pokes et des peeks ! Désassembleur Z80 - Voir tout ça de plus près ! Carte de la mémoire - Nous savons où vous habitez ! Éditeur Z80 - Voir vibrer le coeur du CPC Éditeur CRTC - Contrôler le balayage vidéo Analyseur PSG - Du son à la partition musicale Analyseur Gate Array - Le CPC tout en couleurs ! Informations vidéo - Surveiller l'écran simulé Analyseur ASIC (CPC+) - Cachez ces registres que je ne saurais voir ! Analyseur sprites hard (CPC+) - Les pixels par delà les pixels Analyseur DMA (CPC+) - Les instructions par delà les instructions Disposition des touches - Comprendre le clavier Manettes de jeu virtuelles - Cliquer pour tirer ! Préférences de l'écran du CPC - Clair obscur Gestionnaire de points d'arrêt - Payer son droit de passage Gestionnaire de symboles - Voyager avec son passeport Contrôles avancés - Que la force soit avec vous ! Compteurs utilisateur - Il sait compter bien au delà de dix ! Passerelle vers le disque dur - Accéder au monde extérieur ! Enregistrement vidéo - Faites le buzz sur YouTube ! Greffons d'extension - Une émulation sans limites ! Interface AREXX - Le pilotage de précision
Contents | Index | < Browse | Browse >
Fenêtre principale ACE est relativement intuitif dans son utilisation ; il se comporte simplement comme un véritable CPC. Toutefois, quelques astuces sont bonnes à savoir. Gadgets : De part et d'autre de la zone d'affichage de l'écran du CPC se situent deux groupes de gadgets. Ceux du haut permettent de gérer les disquettes, cassettes et cartouches insérées via les différents onglets et de charger ou sauver des instantanés (fichiers SNA) ou captures d'écran à l'aide des boutons de droite. Certains onglets peuvent être désactivés selon la configuration du CPC (un seul lecteur de disquette, CPC ancienne génération, etc..). En outre, une diode d'activité ainsi que divers symboles permettent de visualiser simplement l'activité des lecteurs ainsi que leur état (face B forcée, mode émulation accélérée, etc..). En bas, se trouvent des gadgets permettant de choisir l'état du CPC : - le réglage du volume, - le choix du modèle de CPC (sélectionne automatiquement un CRTC adéquat), - le choix du type de CRTC, - les différents boutons de contrôle de l'émulateur (vitesse, reprise et mise en pause, redémarrage). - des boutons pour sauver des captures d'écran et lancer l'enregistrement vidéo. Clavier : Le clavier de la machine hôte correspond à quelques détails près au clavier CPC. Pour plus de confort, il est grandement conseillé d'utiliser la ROM firmware du CPC correspondant à votre type de clavier (ce qui devrait normalement être le comportement par défaut puisque ACE choisit la ROM firmware en fonction de la langue de votre système) : - Firmware_fx.ROM : version française, adaptée pour les claviers azerty, de préférence Amiga, Mac ou PC en version belge (les claviers PC azerty en version française sont malheureusement différent de tous les autres). - Firmware_vx.ROM : version anglaise, adaptée pour les claviers qwerty, de préférence anglais. - Firmware_sx.ROM : version espagnole. - Firmware_dx.ROM : version danoise. Il existe également une option (accessible via le menu "Préférences/Adapter la configuration du clavier du CPC" ou au travers du type d'outil AKM=ADAPTKEYMAP) qui permet d'adapter automatiquement la configuration du clavier du CPC à celle de votre machine hôte (voir l'option AKM=ADAPTKEYMAP pour plus de détails). Ceci étant, outre les touches "f0-f9", "." et "ENTER" qui sont accessibles via celles du pavé numérique, quelques touches ont une correspondance spécifique : - DEL est sur "<-" (retour chariot), - CLR est sur "suppr", - COPY est sur le "alt" de gauche, De plus, la plupart des claviers modernes ne gèrent pas l'appui simultané d'un grand nombre de touches. Si cela ne pose généralement pas de problème, c'est parfois très gênant pour certains jeux et plus particulièrement pour activer les cheats modes (par exemple, appuyer simultanément sur "E", "D", "2", "0" et "9" dans Batman The Movie pour passer au niveau suivant). C'est là qu'intervient la touche "alt" de droite. Tant que vous la maintenez appuyée, toutes les touches activées restent enfoncées côté CPC. Pour reprendre l'exemple précédent, si votre clavier ne gère pas l'appui de 5 touches simultanées, maintenez simplement le "alt" de droite enfoncé, puis appuyez consécutivement sur les touches "E", "D", "2", "0" et "9" ; plus besoin de les garder enfoncées ! Elles seront bien sûr toutes relâchées en même temps que le "alt" de droite. En complément de tout ceci, les touches additionnelles des claviers modernes sont également exploitées : - Début a le même effet que "control" + "gauche" (début de ligne sur CPC), - Fin a le même effet que "control" + "droite" (fin de ligne sur CPC), - Page précédente a le même effet que "control" + "haut" (début de paragraphe en BASIC, page précédente sous Protext, etc.), - Page suivante a le même effet que "control" + "bas" (fin de paragraphe en BASIC, page suivante sous Protext, etc.), - F1 insère une disquette dans le lecteur A, - F2 insère une disquette dans le lecteur B, - F3 insère une cassette, - F4 insère une cartouche (CPC+ seulement), - Majuscule + F1 éjecte la disquette du lecteur A, - Majuscule + F2 éjecte la disquette du lecteur B, - Majuscule + F3 éjecte la cassette, - Majuscule + F4 éjecte la cartouche insérée (CPC+ seulement), - F9 charge un fichier SNA, - F10 sauve un fichier SNA, - F11 sauve une capture d'écran, - F12 a le même effet que la touche "enter" du pavé numérique (utile dans le cas où votre pavé numérique n'en aurait pas, comme sur PowerBook G4 par exemple). Enfin, lorsque l'option "Manette de jeu 0 sur le clavier" est activée, elle permet d'utiliser les touches suivantes pour contrôler la manette de jeu: - Flèche vers le haut pour la direction vers le haut, - Flèche vers le bas pour la direction vers le bas, - Flèche vers la gauche pour la direction vers la gauche, - Flèche vers la droite pour la direction vers la droite, - Control pour le bouton feu 2, - Alt de gauche pour le bouton feu 1, - Majuscule de gauche pour le bouton feu 3 (inactif sur CPC+). Les autres raccourcis clavier correspondent simplement à ceux du menu. Manettes de jeu : Les deux manettes de jeu sont émulées via le greffon "Manettes de jeu" fourni avec ACE (voir la section consacrée aux greffons d'extension pour plus de détails). Souris : Le bouton du milieu permet d'afficher/masquer les contrôles et un double-clic dans la fenêtre principale commutera le mode plein écran. De plus, si vous avez configuré l'utilisation d'un pistolet optique le pointeur de souris se transforme alors en cible et le clic fait office de gachette. À noter que le pointeur de souris est automatiquement masqué en plein écran lorsqu'il ne bouge plus (excepté lorsque l'émulation d'un pistolet optique est activée).
Contents | Index | < Browse | Browse >
Fenêtre "À propos du CPC émulé" Cette fenêtre donne diverses informations à propos du CPC que ACE est en train d'émuler en fonction de vos réglages. En complément une image représentant le modèle émulé sera affichée. Ordinateur Rien de plus simple ici, la marque, le modèle et la langue du CPC sont indiqués. Périphériques Ici, l'état des divers périphériques disquette, cassette et cartouche sont indiqués. Les interfaces disquette et cassette peuvent être absentes, internes ou externes selon le modèle du CPC tandis que le port cartouche ne sera bien sûr disponible que sur CPC+. Note : l'état de l'interface cassette sera noté en italique si la passerelle de la cassette vers le disque dur est activée. Système La version du firmware, la ROM disque intégrée utilisée et la quantité totale de mémoire disponible sont affichée dans cette section. Note : le type de la ROM disque intégrée sera noté en italique si elle est surchargée par une ROM 7 externe.
Contents | Index | < Browse | Browse >
Éditeur de mémoire Comme son nom l'indique judicieusement, cette fenêtre permet d'éditer la mémoire du CPC. Rafraîchissement Pour des raisons de performance et d'utilisabilité, les informations contenues dans cette fenêtre ne sont pas remises à jour en temps réel par défaut, mais vous pouvez tout de même l'activer via le menu contextuel. Le contenu de la fenêtre est toutefois rafraîchi automatiquement lorsque l'émulateur entre en pause (soit manuellement soit à cause d'un point d'arrêt), ou manuellement à tout instant en appuyant sur le bouton "Rafraîchir la vue". Les fonctionnalités avancées de recherche et de copier et coller sont disponibles dans le menu contextuel. Configuration En plus de ce bouton, il y a un bouton "Rafraîchir les commutations" qui permet de resynchroniser la configuration mémoire (commutation des pages de RAM et de ROM) de l'éditeur avec celle en cours dans le CPC émulé. La case "Suivre les commutations de l'émulateur" permet quant à elle de toujours faire coller l'éditeur à la configuration mémoire du CPC émulé. Viennent ensuite les gadgets de sélection de la configuration mémoire de l'éditeur (attention, ceux-ci n'ont bien entendu aucune influence sur l'état des commutations mémoire dans le CPC émulé). À noter que certains de ces réglages ne sont actifs qu'en émulation CPC+. Contenu La partie principale de la fenêtre permet donc de visualiser l'état de la mémoire (selon les commutations sélectionnées) tout à la fois en hexadécimal et en ASCII. Cet ASCII représentera le code ASCII dans la page de code du CPC. L'adresse à afficher peut être choisie manuellement ou positionnée en fonction du contenu du registre du Z80 de son choix. Tout en bas de la fenêtre un petit indicateur vous précise la position courante du curseur que vous pouvez déplacer librement dans la zone d'édition. Le bouton "Désassembler..." vous permet quant à lui d'ouvrir la fenêtre du désassembleur à cette même adresse. Note : les zones mémoire en lecture seule sont visualisées par une adresse indiquée entre parenthèses dans l'éditeur de mémoire et ne peuvent évidemment pas être modifiées.
Contents | Index | < Browse | Browse >
Désassembleur Cette fenêtre permet de désassembler n'importe quelle zone mémoire du CPC émulé. Rafraîchissement Pour des raisons de performance et d'utilisabilité, les informations contenues dans cette fenêtre ne sont pas remises à jour en temps réel par défaut, mais vous pouvez tout de même l'activer via le menu contextuel. Le contenu de la fenêtre est toutefois rafraîchi automatiquement lorsque l'émulateur entre en pause (soit manuellement soit à cause d'un point d'arrêt), ou manuellement à tout instant en appuyant sur le bouton "Rafraîchir le code désassemblé". Configuration En plus de ce bouton, il y a un bouton "Rafraîchir les commutations" qui permet de resynchroniser la configuration mémoire (commutation des pages de RAM et de ROM) de l'éditeur avec celle en cours dans le CPC émulé. La case "Suivre les commutations de l'émulateur" permet quant à elle de toujours faire coller l'éditeur à la configuration mémoire du CPC émulé. Viennent ensuite les gadgets de sélection de la configuration mémoire de l'éditeur (attention, ceux-ci n'ont bien entendu aucune influence sur l'état des commutations mémoire dans le CPC émulé). À noter que certains de ces réglages ne sont actifs qu'en émulation CPC+. Contenu La zone principale vous permet donc de voir le code désassemblé. L'adresse d'origine peut être positionnée manuellement ou bien réglée à partir de la valeur courante du registre PC. Il est également possible de bloquer la fenêtre sur l'état de PC en continu (dans ce cas il ne sera bien sûr plus possible de naviguer librement dans la mémoire). Faites bien attention au fait que les opcodes du Z80 ne sont pas de taille constante ; selon l'instruction cela peut varier de un à quatre octets. L'adresse d'origine a donc une grande importance car si vous la positionnez à une adresse qui couperait une instruction en deux, le code que vous visualiserez ne sera pas correct pour les deux ou trois instructions suivantes. Pour le reste, ce désassembleur offre des fonctions de navigation très élaborées. Une barre d'adresses mémorisées vous permet de conserver les adresses que vous désirez afin de pouvoir les repositionner en origine à tout moment en cliquant sur un bouton. Un bouton d'adresse mémorisée se reconfigure en l'activant (via les petits poussoirs sous la barre des boutons) puis en cliquant sur une adresse sur la colonne de gauche dans la partie qui affiche le code désassemblé. Pour pouvez également positionner des points d'arrêt en exécution directement en utilisant les cases à cocher tandis que les petites diodes à côté vous informent sur leur état d'activation de façon plus directe qu'en utilisant la fenêtre des points d'arrêt (uniquement lorsque la gestion des points d'arrêt est activée). Enfin, la colonne tout à droite affiche des boutons de saut direct à des adresse lorsque des instructions de branchement (JP, JR, CALL, etc..) ont été détectées. Tout en bas de la fenêtre est rappelée l'adresse courante (elle correspond à la première adresse désassemblée de la fenêtre) ainsi qu'une case à cocher qui permet de désactiver l'utilisation des symboles dans le désassembleur, et enfin ily a un un bouton "Éditer..." qui vous permet d'ouvrir l'éditeur de mémoire avec le curseur directement positionné à cette adresse.
Contents | Index | < Browse | Browse >
Carte de la mémoire Cette fenêtre permet simplement de visualiser l'état des pages mémoire commutées. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Le contenu de la fenêtre est assez explicite et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Éditeur Z80 Cet éditeur permet simplement de visualiser et de modifier à tout moment l'état du Z80 du CPC émulé. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite pour toute personne connaissant le Z80. Tous les registres du Z80 peuvent être édités et des informations complémentaires sont également affichées (telles l'état des interruptions ou les flags correspondants au registre F). En complément, l'état de la pile est également représentée.
Contents | Index | < Browse | Browse >
Éditeur CRTC Cet éditeur permet simplement de visualiser et de modifier à tout moment l'état du CRTC du CPC émulé. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite pour toute personne connaissant le CRTC, et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Analyseur PSG Cette fenêtre permet simplement de visualiser l'état du PSG du CPC émulé. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Les informations fournies dans cette fenêtre sont nombreuses et riches ; les infos bulles présentes à tous les niveaux vous permettront de bien tout comprendre.
Contents | Index | < Browse | Browse >
Analyseur Gate Array Cette fenêtre permet simplement de visualiser l'état du Gate Array du CPC émulé. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite pour toute personne connaissant le Gate Array, et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Informations vidéo Cette fenêtre permet simplement de visualiser l'état du balayage vidéo du CPC émulé. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Analyseur de l'ASIC (CPC+ seulement) Cette fenêtre permet simplement de visualiser les principaux registres de l'ASIC Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Analyseur de sprites hard (CPC+ seulement) Cette fenêtre permet simplement de visualiser la palette des sprites hard et leur contenu. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite et les infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément. Simplement, vous avez en bas de la fenêtre une option pour choisir la couleur de fond qui permet la meilleure visualisation des sprites, et une autre pour forcer l'affichage des sprites qui sont désactivés sur le CPC+ (ils sont alors affichés légèrement atténués et au zoom maximum pour les différencier des sprites qui sont effectivement actifs).
Contents | Index | < Browse | Browse >
Analyseur de DMA (CPC+ seulement) Cette fenêtre permet de suivre l'état des trois DMA du CPC+ ainsi que les instructions qu'ils sont en train d'exécuter. Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite pour toute personne connaissant le fonctionnement des DMA du CPC. Des infos bulles présentes à tous les niveaux vous permettront de vous y retrouver aisément.
Contents | Index | < Browse | Browse >
Fenêtre de disposition des touches du clavier Cette fenêtre permet simplement de visualliser l'état des touches du clavier et de presser ou de verrouiller certains touches (en cliquant dessus avec l'un ou l'autre des boutons de la souris). Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite ; les infos bulles vous donneront les codes de chacune des touches du clavier.
Contents | Index | < Browse | Browse >
Manettes de jeu virtuelles Cette fenêter permet simplement de visualiser l'état des manettes de jeu, mais aussi d'activer ou de verrouiller les directions ou les boutons feu (en cliquant dessus avec l'un ou l'autre des boutons de la souris). Rafraîchissement Les informations contenues dans cette fenêtre sont rafraîchies en temps réel et sont toujours valides. Contenu Pour le reste, le contenu de la fenêtre est assez explicite ; les infos bulles vous donneront les codes de chacune des directions et boutons feu des manettes de jeu.
Contents | Index | < Browse | Browse >
Préférences de l'écran du CPC Cette fenêtre permet de choisir le type d'écran à émuler ainsi que d'en régler les paramètres comme vous le feriez avec le vériable écran de votre CPC. Contrairement aux autres fenêtres secondaires elle n'est pas accessible par le menu des fenêtres mais par celui des préférences.
Contents | Index | < Browse | Browse >
Gestionnaire de points d'arrêt Cette fenêtre permet d'éditer tous les types de points d'arrêt configurables gérés par ACE. Contrairement aux autres fenêtres secondaires elle n'est pas accessible par le menu des fenêtres mais par celui du traçage ou à l'aide du bouton "Plus..." dans la barre des points d'arrêt de la fenêtre Z80. Son contenu sera n'est accessible que lorsque la fonctionnalité des points d'arrêt est activée dans ce même menu (ou grâce au raccourci dans la fenêtre Z80). Elle dispose de trois pages décrivant les trois types de points d'arrêt configurables possibles. Points d'arrêt en exécution Cette page permet de visualiser, d'ajouter, de modifier et d'effacer les points d'arrêt en exécution. Il s'agit des adresses sur lesquelles l'émulation se mettra automatiquement en pause si le Z80 tente d'y exécuter une instruction. La condition permet optionnellement de décrire une expression qui doit être vraie pour que le point d'arrêt soit valide (plus de détails dans l'info- bulle associée). Le mode permet de choisir s'il s'agit véritablement d'un point d'arrêt ou simplement d'un observateur. Dans le cadre d'un observateur l'exécution ne s'arrête pas mais le compteur d'occurrences du point d'arrêt est mis à jour. Le pas permet de choisir la fréquence d'occurrence du point d'arrêt. Un pas à zéro décrit un point d'arrêt systématique, un par à 1 décrit un point d'arrêt qui sera valide une fois sur deux, et ainsi de suite. Le nom permet de nommer un point d'arrêt afin de pouvoir plus facilement s'y retrouver lorsqu'il y a un grand nombre de points d'arrêt positionnés mais aussi pour l'utiliser depuis des scripts afin de ne pas dépendre d'adresses en dur. Ce type de point d'arrêt peut également être positionné directement depuis la fenêtre du désassembleur ou celle de l'éditeur Z80. Points d'arrêt en mémoire Cette page permet de visualiser, d'ajouter, de modifier et d'effacer les points d'arrêt en mémoire. Il s'agit des adresses sur lesquelles l'émulation se mettra automatiquement en pause si le Z80 y a lu ou écrit une valeur. Le masque sur l'adresse permet de filtrer les bits à tester. Par exemple un masque à &FF00 pour une adresse à &9D00 provoquera un arrêt pour toutes les adresses &9Dxx. La taille permet d'indiquer une taille de zone à tester. La valeur permet de provoquer l'arrêt sur une valeur précise, avec également un masque sur la valeur. Par défaut le masque est à zéro ce qui signifie que la valeur sera quelconque (aucun bit à tester). Les autres paramètres sont identiques à ceux des points d'arrêt en execution. Points d'arrêt sur un port entrée/sortie Cette page est similaire à celle sur les points d'arrêt en mémoire mais concerne la lecture et l'écriture d'une valeur sur une adresse de port entrée/sortie donnée. Note 1 : dans chacune de ces pages, double-cliquer sur un point d'arrêt dans la liste permet d'en remettre le compteur d'occurrence à zéro. Note 2 : le nombre maximum de points d'arrêt par type est de 64. Une fois 64 points d'arrêt d'un type donné positionnés, vous ne pourrez plus en ajouter de nouveaux.
Contents | Index | < Browse | Browse >
Gestionnaire de symboles Cette fenêtre permet d'éditer les symboles qui seront ensuite utilisés dans le désassembleur, mais aussi partout où une adresse 16 bits peut être saisie. Plusieurs symboles peuvent pointer sur la même adresse. Un filtre permet de rechercher facilement les symboles ; ce filtre s'écrit comme n'importe quel filtre AmigaDOS. Par défaut, tous les symboles sont affichés. Les symboles sont limités à 255 caractères, ne peuvent pas commencer par un chiffre, ne peuvent pas contenir de caractère spéciaux autres que le souligné (_) et ne sont pas sensibles à la casse.
Contents | Index | < Browse | Browse >
Contrôles avancés Cette fenêtre permet de contrôler précisément comme le Z80 exécute les instructions (mode pas à pas et plus encore).
Contents | Index | < Browse | Browse >
Compteurs utilisateur Cette fenêtre permet de visualiser et initialiser les compteurs utilisateur pour les cycles du Z80, les lignes et les trames vidéo balayées.
Contents | Index | < Browse | Browse >
Scripts & outils ACE vient avec un jeu d'outils pour le moment basiques mais qui évolueront rapidement au fur et à mesure des versions. La plupart de ces outils sont basés sur l'interface AREXX. Si vous êtes amené à créer vos propres scripts REXX ou Lua, n'hésitez pas à me les soumettre pour les distribuer avec les prochaines versions d'ACE. Outils en ligne de commande : arec2raw est un petit outil à utiliser pour convertir les fichiers AREC produits par ACE lors de l'enregistrement de vidéos. Il va générer des fichiers audio et vidéo bruts ainsi qu'un petit script dédié capable d'encoder ces fichiers bruts en un format vidéo standard grâce à ffmpeg (bien sûr, ffmpeg doit être installé sur votre système pour pouvoir utiliser ce script d'encodage). Les arguments de cet outil sont : * FROM/A: nom du fichier AREC file à convertir. Si plusieurs fichiers AREC avec des suffixes numérotés existent, alors le principal (celui sans suffixe) doit être fourni et les autres seront automatiquement gérés. * TO: par défaut les fichiers bruts (ainsi que le script d'encorage dédié) sont générés au même endroit que le fichier AREC traité. Si cet argument est spécifié alors le nom de fichiers fourni sera utilisé à la place. Scripts REXX : JoyFury.rexx vous permettra de gagner facilement dans tous les jeux qui demandent d'agiter violemment sa manette de gauche à droite pour avancer (typiquement les jeux de sport). Il prend pour paramètre la période d'oscillation désirée (la valeur par défaut est de 20000 micro-secondes). ACE.AmIRx est petit script REXX totalement inutile pouvant être installé dans le répertoire "Rexx" de AmIRC. Une fois en place, il pourra être invoqué via le menu "ARexx" de AmIRC (ou en tapant "/rx ACE") afin d'envoyer des informations sur votre usage en cours d'ACE sur le canal IRC courant. Il peut également être lancé de façon autonome, mais utilisera alors la première instance de AmIRC qui tourne pour envoyer ses messages. ImportSymbols.rexx ce script prend un fichier listing généré par vasm ou un fichier de symboles de rasm et importe tous les symboles qu'il contient dans ACE. CrossDevExample.rexx est un exemple de script plus complexe qui montre comment l'on peut utiliser ACE pour faire du développement (en l'occurrence en générant un petit effet de demo classique). Il accomplit plusieurs choses intéressantes à cet effet : * il redémarre le ACE, * il fait faire un MEMORY adapté à ACE, * il met ACE en pause, * il calcule des tables en les stockant directement dans ACE, * il assemble un code source en utilisant vasm (assembleur Z80), * il charge le binaire ainsi assemblé dans ACE, * il relance ACE, * il fait faire un CALL à ACE pour lancer le programme. Ce script est simplement une adaptation d'un programme disponible sur le Quasar Net : http://quasar.cpcscene.net/doku.php?id=coding:aurore_boreale. Le programme de génération en BASIC a été converti en REXX (trivial) et le code assembleur très légèrement modifié pour fonctionner avec vasm. On pourrait le perfectionner en passant en paramètre à vasm les valeurs des EQUs issus du calculateur de table en REXX plutôt que de les avoir en dur dans le source assembleur. À noter que pour fonctionner ce script nécessite : * la rexxmathlib.library de Thomas Richter, * vasm de Volker Barthelmann (qui doit simplement être dans le "Path"). Scripts Lua : CrossDevExample.lua est totalement équivalent à CrossDevExample.rexx.
Contents | Index | < Browse | Browse >
Foire aux questions ACE gère 256 ROMs... mais je ne vois que 16 paramètres de ROMs !? Les arguments ne permettent effectivement que de spécifier les 16 premières ROMs d'extension. Si vous avez vraiment besoin de configurer des ROMs au delà, vous pouvez le faire en utilisant la commande "FLASHROM" du port AREXX. Mais dans tous les cas, gardez bien en mémoire que le firmware ne gère que les 16 premières ROMs d'extension de second plan. 16 ROMs est sans doute suffisant dans la majorité des cas. Pourquoi est-ce que ACE ne gère que 512Kio de mémoire étendue ? Cette limite est la limite standard prévue par Amstrad lors de la conception du CPC. Le seul moyen d'utiliser plus de mémoire est de passer par des extensions spécifiques (comme la Memcard 2Mio de RAM7). Vu le peu de support de ce type de d'extension mémoire, je ne pense pas que les émuler soit vraiment utile. Qu'en est-il de la qualité de l'émulation CRTC pour les démos ? À vrai dire, il n'y a pour l'heure que le CRTC 1 qui est parfaitement émulé. Vous devriez toujours le choisir en priorité et n'en changer que lorsqu'une démo est connue pour ne pas fonctionner sur CRTC 1. L'émulation CRTC 0 est néanmoins de qualité tout à fait correcte et seules de rares démos ne fonctionnent pas comme elles le devraient. L'émulation CRTC 2 a été peu paufinée mais donne des résultats corrects ; elle n'a toutefois que peu d'intérêt vu qu'ils n'existe aucune démo ne fonctionnant que sur CRTC 2. L'émulation CRTC 3 et 4 est déjà de très bonne qualité et la totalité des logiciels testés dessus se comportent normalement. J'ai très souvent des messages d'avertissement lors de l'ouverture des DSK ! Soyons clair, le format DSK est vraiment horrible et les outils permettant de créer des DSK à partir des disquettes physiques le sont souvent tout autant. En pratique, les informations contenues dans les DSK sont insuffisantes (lorsqu'elles ne sont pas complètement fausses) pour permettre une émulation vraiment fidèle du FDC et du lecteur de disquettes. Un mécanisme perfectionné de "réparation" à la volée des DSK a été mis en place dans ACE afin de reconstruire ces informations ; les messages d'avertissements correspondent généralement à la mise en oeuvre de ces correctifs. Vous pouvez désactiver les messages avec l'option "NOWARNINGS" ou l'entrée "Afficher les messages d'avertissement" dans le menu "Préférences" (les correctifs continueront d'être appliqués vu qu'ils sont indispensables à l'émulation du FDC et du lecteur de disquettes d'ACE). Dans une prochaine version ACE proposera un nouveau format d'images disque plus approprié à une émulation rigoureuse du FDC et du lecteur de disquettes. L'import et l'export des fichiers DSK restera possible mais ça ne sera définitivement plus le format natif vu les complications et les limitations qu'il entraine pour l'émulation FDC. Pourquoi un fichier DSK inséré dans ACE n'est pas modifié lorsque j'écris dedans depuis ACE ? En fait, il est modifié, mais pas en temps réel. ACE ne manipule pas directement les fichiers DSK. Ils sont chargés et convertis dans le format d'une mémoire cache interne. Lorsque vous manipulez cette image disque, seul le cache est modifié. Le fichier DSK ne sera effectivement modifié (mis à jour avec le contenu du cache interne) que lorsqu'il sera éjecté d'ACE ou lorsque vous quitterez ACE (que ce soit manuellement ou suite à un redémarrage système). De plus, ACE tente de conserver le format d'origine lorsqu'il met à jour le fichier en fonction du cache interne. Si le DSK originel était standard, ACE sauvera un DSK standard, si c'était un DSK étendu, il sauvera un DSK étendu. Si les modifications apportées à l'image disque ne permettent plus de la stocker sous la forme d'un DSK standard, ACE vous demandera si vous désirez la sauver sous forme d'un DSK étendu à la place. Quelle est la différence entre les actions "Réinitialiser" et "Redémarrer" ? Réinitialiser simule simplement un "reset hard" du CPC. C'est-à-dire que tous les chipsets ainsi que le processeur sont réinitialisés mais que la mémoire n'est pas affectée. Il s'agit en fait exactement du même comportement que celui que vous auriez sur un CPC équipé d'un bouton d'un reset hard (comme celui présent sur la Multiface Two ou le Hacker). Redémarrer va en revanche tout réinitialiser y compris la mémoire comme si le CPC venait d'être mis sous tension. Par défaut ACE émule un CPC6128, comment le configurer pour émuler un autre modèle ? Configuration des ROMs : La principale différence entre les modèles de CPC est liée à la version des ROMs firmware et BASIC installées. Les CPC6128 utilisent la version 3 du firmware tandis que les CPC664 utilisent la version 2 et les CPC464 la version 1. Les CPC+ utilisent quant à eux une ROM firmware en version 4 avec la ROM BASIC 1.40. Vous devrez en outre faire attention à la ROM BASIC que vous installez. - le BASIC 1.0 convient à la ROM firmware version 1, - le BASIC 1.1 convient à la ROM firwmare version 2, - les BASIC 1.2x et 1.40 conviennent aux ROM firmware version 3 ou 4. Configuration de la mémoire : Une autre différence entre les modèles de CPC concerne la mémoire. Les CPC6128 et 6128+ ont 64Kio de mémoire d'extension intégrés sur la carte mère tandis que les CPC464/664 et 464+ n'en ont pas. Il est toutefois possible d'augmenter la mémoire de tous les CPC avec des extensions mémoire externes mais le fait d'avoir ou non 64Kio de mémoire d'extension déjà intégrés à la carte mère apporte quelques différences de comportement. Si vous désirez retrouver le comportement d'un CPC464/664 ou 464+ disposant d'extension mémoire, il faudra activer le type d'outil 64KEXPMEMSCHEME. De plus, si vous voulez que la mémoire étendue se comporte comme celle d'une DK'Tronics, il faudra aussi activer le type d'outil DKTRONICSBUGS. Pour le reste, libre à vous d'installer la quantité de mémoire que vous désirez. Configuration des lecteurs : Si vous désirez émuler un CPC464 ou un 464plus de base, vous pouvez désactiver l'interface disquette à l'aide du menu ou du type d'outil NODISCINTERFACE. Si vous désirez émuler un système avec un seul lecteur de disquette vous pouvez désactiver le lecteur B au travers du menu. Comment faire pour avoir un affichage fluide en 50Hz ? Les jeux et démos CPC tournent en 50Hz. Pour avoir un affichage parfaitement fluide comme sur un véritable CPC, vous devez donc avoir une fréquence de balayage parfaitement égale (ou multiple) sur votre système. Vous n'aurez généralement pas de mode graphique en 50Hz disponible par défaut. Toutefois, vous pouvez créer très facilement de nouveaux modes graphiques à l'aide des préférences de MorphOS (faites juste attention à créer un écran en 16, 24 ou 32 bits). Sous réserve que votre moniteur le supporte (au besoin éditez ses caractéristiques par défaut pour tester), créez alors un mode graphique dont la fréquence verticale est très exactement de 50,0801Hz. Récupérérez ensuite l'identifiant de ce mode graphique et positionnez le type d'outil SCREENMODE à cette valeur (par exemple SCREENMODE=0x40920058). Lorque vous passerez en plein écran vous pourrez alors profiter de scrollings parfaitement fluides comme sur un véritable CPC ! Malheureusement, beaucoup de jeux et démos ne respectent pas la fréquence de balayage nominale de 50,0801Hz... et ceux-ci ne seront pas fluides... Il n'y a pas vraiment de solution, sinon celle de relever la fréquence de balayage requise par le programme (à l'aide de la fenêtre des informations vidéo) et de créer un mode écran adéquat. En mode pas à pas, après un accès 16 bits du Z80 à la page I/O ASIC, ceux-ci ne sont que partiellement mis à jour, est-ce un bug de rafraîchissement? Non. C'est effectivement ce qui se produit dans le CPC+. L'ASIC est relativement lent à mettre à jour ses registres internes, et si vous les modifiez en utilisant un accès 16 bits, seul l'octet de poids faible sera effectiveemnt à jour à la fin de l'instruction du Z80. L'octet de poids fort ne sera mis à jour que lors des 250 ns à venir (pendant le prochain pas du Z80).
Contents | Index | < Browse | Browse >
Bugs connus * Écrire sur des secteurs non fiables (les "weak-sectors" des DSK) ne mettra effectivement à jour que la première version du secteur. Ceci est un héritage bien malheureux de la médiocrité du format DSK et sera corrigé lorsque le nouveau format (basé sur un modèle physique) sera en place. * Sur PowerBook G4 il y a un problème avec les touches fléchées lorsqu'elles sont manipulées intensivement ; certaines touches fantôme se retrouvent bloquées pressées. Vous pouvez bien sûr utiliser la touche "alt" de droite pour les débloquer (une pression sur "alt" de droite relâche toutes les touches) mais ça n'est pas très pratique lorsque ce problème survient pendant un jeu. Le mieux est d'utiliser un clavier externe en USB (ou une manette de jeu) pour jouer sur PowerBook G4 plutôt que le clavier intégré. * L'émulation saccade lors de l'enregistrement de vidéos. Ceci est le cas sur la plupart des machines MorphOS qui sont trop lentes pour pouvoir assurer cette tâche en temps réel. Toutefois, la qualité de la vidéo enregistrée n'est pas affectée.
Contents | Index | < Browse | Browse >
À venir Houlala ! Des tas de choses sont prévues ! * amélioration de l'émulation du CRTC 2 qui est pour le moment très minimaliste, * création de nouveaux greffons d'extension et amélioration de ceux déjà existants, * support d'un format d'images brutes pour les disquettes et réécriture de l'émulation du lecteur de disquettes et du FDC en conséquence (le format DSK ne sera plus supporté qu'en import ou en export), * extension des commandes AREXX disponibles et création de petits d'outils annexes qui utilisent le port AREXX, * ajout du support du VirtualNet96, * ajout d'un filtre graphique simulant le rendu réel d'un moniteur à tube cathodique, * implémentation d'un mode "retour en arrière", * et bien d'autres choses encore...
Contents | Index | < Browse | Browse >
Historique * Version 1.17 (18.08.2018): - Modification de l'affichage des informations en incrustation vidéo afin de mieux tirer profit de l'accélération matérielle et éviter les mises à jour inutiles (l'OSD est maintenant quatre fois plus rapide). - Correction d'un bug qui faisait que l'état de l'enregistrement vidéo n'était pas mis à jour après une modification de l'affichage. - Amélioration du moteur de rendu logiciel (WPA) par l'ajout d'un double tampon. - Ajout de contours autour des DEL d'activité des lecteurs de disquette en incrustation vidéo afin qu'elle restent visibles même lorsque le fond d'écran est rouge. - Mise à jour de la traduction en allemand grâce à Stefan 'polluks' Haubenthal. - Changement des touches de raccourcis pour les modes pas à pas et ajout des entrées correspondantes dans le menu. - Retrait des contrôles et des compteurs utilisateur de la fenêtre du Z80 et ajout de fenêtres dédiées. - Retrait de l'extrait de code désassemblé de la fenêtre du Z80 afin de la rendre plus compacte. - Ajout d'un système de mise à jour différée lorsque de multiples points d'arrêt, symboles, modifications de la mémoire ou accès à des ports d'entrée-sortie sont effectués depuis l'interface AREXX. - Corrections dans l'organisation de la fenêtre de l'éditeur CRTC. - Correction de la traduction française de "bank" (signalé par Longshot). - Ajout d'une fenêtre séparée qui affiche la carte mémoire. - Ajout de la carte mémoire dans les fenêtres de l'éditeur mémoire et du désassembleur. - Optimisation de la vitesse d'affichage de la carte mémoire. - Correction de tous les bugs connus qui faisaient que la carte mémoire pouvait ne pas toujours afficher les bonnes informations (la routine sous-jacente a été totalement réécrire et est nettement améliorée). - Correction du contenu de l'info-bulle de la carte mémoire (les informations sur les couleurs rouges et vertes étaient inversées). - Utiliser un bouton de suivi de branche dans le désassembleur met maintenant automatiquement à jour l'historique des adresses. - Interdiction de passer ACE en plein écran pendant qu'il est iconifié. - Réécriture de la façon dont les fenêtres secondaires sautent automatiquement dans le nouvel écran lors du passage en plein écran (fonctionne comme avant d'apparence, mais en interne c'est beaucoup mieux !). - Les fenêtres de l'éditeur mémoire et du désassembleur peuvent maintenant être ouvertes plusieurs fois (chacune avec son propre contexte mémoire). - Les gadgets de configuration du contexte mémoire sont maintenant visibles uniquement lors le mode manuel est sélectionné pour les fenêtres de l'éditeur mémoire et du désassembleur. - Modification de diverses touches de raccourcis. - Ajout d'une nouvelle fenêtre avec des informations sur les registres vidéo et de gestion des interruptions de l'ASIC. - L'Altivec n'est plus obligatoire (ACE devrait maintenant à nouveau fonctionner sur les ordinateurs sans processeurs G4 ou G5). * Version 1.16 (18.03.2018): - Correction du temps de réaction du FDC lors du lancement d'opération de lecture ou d'écriture (quelques chargeurs sectoriels qui étaient anormalement lents fonctionnent maintenant comme attendu). - Correction d'un plantage potentiel (au moins un accès mémoire illégal) lors de tentatives d'accès à des pistes non existantes d'une disquette. - Ajout d'un argument FILE à la command AREXX RECORDSTART afin de pouvoir fournir un nom de fichier spécifique (similaire à la command AREXX GRAB ; si omis, alors le nommage automatique dans le tiroir par défaut est toujours utilisé). - Ajout d'un descripteur de fichiers pour les enregistrements vidéo d'ACE (fichiers AREC) ; il se trouve dans le tiroir "Bonus". - Ajout d'un nouveau type d'outil AP=AUTOPAUSE et d'une entrée associée dans le menu des préférents pour mettre ACE automatiquement en pause et le relancer lorsque la fenêtre principale perd le focus puis le retrouve. - Amélioration des API internes pour la gestion de la mémoire du CPC depuis les fenêtres MUI. - Ajout d'un ordonnanceur pour mieux partager le temps entre les fenêtres demandant beaucoup de processeur pour leur rafraîchissement en temps réel (Z80, Memory, DMA). - Réorganisation du code des fenêtres de l'éditeur mémoire et du désassembleur pour partager une nouvelle classe MUI privée qui gère le réglage manuel de la pagination mémoire souhaitée pour l'édition (le code MUI est bien meilleur !). - Ajout d'un menu contextuel sur les zones de l'éditeur mémoire et du désassembleur pour activer leur mise à jour en temps réel (bien sûr, tout le reste dans ACE est toujours temps réel ; ce n'était pas le cas de ces fenêtres à cause de leur consommation massive de processeur, mais cela fonctionne maintenant mieux grâce à diverses optimisations). - Ajout de l'affichage des valeurs de MMR, RMR and RMR2 correspondant à la pagination mémoire sélectionnée dans les fenêtres de l'éditeur mémoire et du désassembleur. - L'enregistrement vidéo attend maintenant 10 secondes et met à jour l'icône associée afin d'avoir de meilleures chances qu'elle soit représentative. - Correction du cyclage des gadgets au clavier dans l'éditeur Z80, l'éditeur de préférences de l'écran et les préférences du greffon d'émulation des manettes de jeu. - Correction de l'enregistrement vidéo afin d'ignorer tout saut de trame automatique qui aurait pu être configuré. - Amélioration de l'émulation du bug du vecteur d'interruption de l'ASIC des CPC+ (CRTC³ de Flower Corp. ne détecte plus ACE). - Suppression d'un appel résiduel à des fonctionnalités de l'ASIC du CPC+ dans le code d'émulation du CRTC 4 (heureusement sans effet). - Désactivation du message d'avertissement à propos des secteurs non entrelacés rencontrés dans les fichiers DSK chargés (la plupart des DSKs à présent disponibles utilisent de tels formats de façon volontaire et ne sont plus le résultat de mauvais outils de génération). - Ajout du support de l'import de fichiers contenant des listes d'EQUs au script ImportSymbols.rexx. - Affinage du délais de prise en compte de la modification des registres de zoom et de position des sprites hard de l'ASIC des CPC+ (ils respectent désormais les cycles de 250 ns comme c'était déjà le cas pour les registres de palette). - Correction d'un bug dans la gestion des interruptions raster de l'ASIC des CPC+ (elles pouvaient être remises à zéro avant d'avoir été traitées). - Amélioration de l'émulation du bug de duplication des interruptions raster de l'ASIC des CPC+ (elles devraient maintenant être parfaites !). - Nouvelle optimisation en vitesse du code d'émulation, plus spécifiquement pour les DMA du CPC+ (ça devient compliqué de conserver une émulation au cycle qui tourne à la frame sur un petit G4). - Réorganisation du code d'émulation du cycle d'attente des DMA des CPC+ afin de mieux coller à la réalité. - Correction de divers bugs mineurs dans les timings des DMA des CPC+. - Correction du bit 7 du registre DCSR de l'ASIC des CPC+ qui n'était pas positionné après une interruption raster lorsque le bit 0 du registre IVR était à 0. - Correction d'un vilain accès mémoire illégal au démarrage (remonté par Michal 'rzookol' Zukowski). - Correction du bouton d'ajout de symboles afin qu'il soit désactivé lorsque le nom du symbole en cours d'édition est vide. - Correction du mot-clef ASICPageOn des conditions ; il ne fonctionnait pas. - Correction d'un bug dans la gestion de l'interruptions raster des CPC+ lorsqu'elle était activée pendant qu'une interruption standard du Gate Array étaient en attente (ceci empêchait Eerie Forest de Logon System de fonctionner correctement). - Ajout d'un mode de compilation combinée des sources du coeur de l'émulation afin d'améliorer le process d'optimisation de GCC (ACE est désormais 14% plus rapide !). * Version 1.15 (18.02.2018): - Correction de petites fautes typographiques dans la version française. - Correction du décodage des mnémoniques BIT/RES/SET utilisées avec IX/IY dans les désassembleurs. - Ajout d'une nouvelle API dans les greffons pour qu'ils puissent être informés de l'exécution d'un RETI (API version 3) - Ajout du support des interruptions non masquables depuis les greffons (API version 3). - Ajout d'un type d'outil "NOPLUSUNSTABLEHIZ" afin de pouvoir désactiver l'émulation de l'état de haute impédance instable lors de la lecture d'adresses illégales dans la page d'entrée/sorties de l'ASIC (permet de lancer quelques démos buggées comme BarBar d'Eliot/Benediction ; mais ces démos continuent bien sûr de ne pas fonctionner sur un vrai CPC+ équipé d'une Ramcard ou d'une Multiface Two par exemple, mais il n'y rien que je puisse y faire !). - Ajout d'une entrée dans le menu des préférences pour activer ou désactiver l'émulation de la haute impédance instable des CPC+ (relatif au type d'outil NOPLUSUNSTABLEHIZ). - Correction de quelques info-bulles mal placées. - Ajout du support de l'enregsitrement vidéo (un disque dur rapide et pas mal d'espace requis !). - Ajout d'un bouton et d'une entrée dans le menu projet pour démarrer et arrêter l'enregistement vidéo. - Ajout d'un type d'outil "RECORDPATH" pour changer le chemin d'enregistrement des vidéos (par défaut il s'agit du tiroir "Records/"). - Ajout d'une option pour voir des parties de l'écran qui ne seraient normalement pas visibles car masquées par les bordures de l'écran (essentiellement utile lors de la mise au point de démos). Un nouveau type d'outil "OVERSCAN" a été ajouté de même qu'une case à cocher dans la fenêtre de préférences de l'écran (demandé par NoRecess, et pourrait aussi partiellement répondre à une requêtre de Grimmy). - Ajout de nouveaux mots clefs dans les conditions des points d'arrêt pour pouvoir tester la configuration ROM ou RAM. - Ajout d'un champ "taille" pour les points d'arrêt sur les accès mémoire en plus du champ déjà existant du masque d'adresse. Les commandes AREXX ADDBREAKPOINT, REMOVEBREAKPOINT et EXPORTBREAKPOINTS ont ét" mises à jour en conséquence, de même que la sauvegarde des points d'arrêt dans les instantanés (de façon rétrocompatible). - Changements dans la fenêtre d'édition des points d'arrêt pour la rendre plus compacte. - Correction de l'émulaion du CRTC 4 qui utilisait parfois des fonctionnalités spécifiques au CPC+ pour certains calculs (on obtenait des comportements étranges en commutant du CRTC 3 au CRTC 4 pendant que le scrolling hard vertical de l'ASIC était actif). - Correction d'une horrible fuite mémoire qui avait été introduite dans la version 1.13. - Ajout de la gestion des symboles par le biais de nouvelles commandes AREXX ADDSYMBOL, REMOVESYMBOL, FINDSYMBOL et EXPORTSYMBOLS. - Ajout du support des symboles dans la fenêtre du désassembleur (peut être désactivé). - Ajout du support des chunks MEM0-8 dans les instantanés (peut être désactivé). - Ajout d'un biais pour gérer les mauvais instantanés sauvés par WinAPE pour les CPC+ (RMR2 n'est pas stockà à l'endroit attendu). - Ajout du support du presse papier (collage) dans l'émulateur (similaire à la commande AREXX KEYBOARDSTROKE). - Ajout d'une fenêtre de gestion des symboles avec recherche par filtre. - Ajout du support des symboles dans toutes les entrées de valeurs 16 bits (pour la détection de la correspondance d'une valeur ou le réglage de celle-ci). - Légère optimisation des notifications dans l'interface graphique (environ 5% plus rapide). - Ajout du support du presse papier dans l'éditeur mémoire (pour les chaînes de caractères aussi bien que pour les séquences hexadécimales). - Ajout d'une nouvelle version dans les instanténs pour y stocker les symboles (également géré par rasm). - Ajout de la recherche de chaînes de caractère ou de séquence hexadécimales dans l'éditeur de mémoire. - Augmentation du delais de 1 à 3 secondes pour le reset handler système. - Ajout d'un motif en incrustation vidéo pour indiquer un enregistrement en cours lorsque l'on est en plein écran. - Ajout des commandes AREXX RECORDSTART et RECORDSTOP pour contrôler l'enregistrement vidéo. - Ajout d'un nouveau script AREXX d'exemple qui est capable d'importer dans ACE les symboles en provenance d'un fichier listing généré par vasm ou d'un fichier de symboles généré par rasm. - Ajout d'un petit outil en ligne de commande nommé arec2raw qui est capable de convertir les fichiers AREC générés par l'enregistrement vidéo d'ACE en fichiers audio et vidéo bruts, ainsi que de produire un petit script dédié permettant d'encoder des fichiers bruts en une vidéo 64 bits peut être nécessaire pour les longues vidéos). - Correction des raccourcis clavier non localisées dans les requêtes (signalé par Stefan 'polluks' Haubenthal). * Version 1.14 (09.03.2017) : - Correction d'un problème potentiel avec la détection des répertoires dans la passerelle de la cassette vers le disque dur. - Réagencement de la fenêtre d'édition du Z80 et ajout d'une zone qui affiche la pagination mémoire. - Retrait de la mise en gras utilisée sur le texte de certains labels afin de mieux coller à la charte graphique traditionnelle de MUI. - Mise à jour de la traduction en allemand grâce à Stefan 'polluks' Haubenthal. - Ajout d'un raccourci dans la fenêtre d'édition mémoire afin d'aller directement à l'adresse de la mémoire vidéo (requête de Krusty). - Réagencement de la fenêtre des points d'arrêt. - Réoptimisation de la vitesse de l'émulation CRTC qui avait été dégradée dans la version 1.13 (ACE est maintenant 5% plus rapide). - Correction de certaines conditions limites sur CRTC 0 lorsque le registre 4 est programmé à la fin de l'écran (suite de tests de Kevin Thacker). - Changements internes dans la façon dont l'interface AREXX est installée. - Correction de l'API interne d'installation des greffons afin de fonctionner correctement quand plusieurs objets d'émulation sont créés au sein de la même application. - Ajout d'un type d'outil "PLUGINSPATH" pour configurer répertoire qui contient les greffons à charger. - Correction d'une faute de frappe (sans effet) dans un type d'outil des icônes CPC464, CPC664 and 464plus. - Simplification de la gestion interne des minuteries. - Correction d'un problème potentiel de concurrence d'accès aux données lors de l'utilisation de l'arrêt sur une position à l'écran. - Correction d'un problème de longue date qui faisait que la position du canon à électron était subrebticement affiché à une mauvaise position (pendant une trame) juste après un arrêt. - Légère accélération de la vitesse d'injection des touches depuis la commande AREXX "KEYBOARDSTROKE". - Correction d'un problème dans l'émulation CRTC 0 lorsque le registre 6 est reprogrammé pendant la dernière ligne de l'écran (suite de tests de Kevin Thacker). - Correction sur CRTC 0 du déclenchement instantané de la synchronisation verticale lors de la programmation du registre 7 (suite de tests de Kevin Thacker). - Amélioration des séquences de démarrage et d'arrêt. - Ajout de tests précis et de l'affichage d'avertissements en cas d'erreur dans les types d'outils fournis à ACE. - Modification interne dans la gestion des redirections et des classes MUI pour permettre la portabilité sur AmigaOS et AROS. - Simplification de l'interruption de capture du redémarrage du système. - Changements internes dans la classe MUI gérant le rendu graphique afin de la rendre plus modulaire dans l'optique d'un portage. - Changement multiples dans l'émulation CRTC 0 (cela corrige la partie de Longshot de la Amazing Demo et devrait permettre à de nombreuses autres démo de mieux fonctionner). - Correction de plusieurs problèmes dans la gestion du retard vidéo sur CRTC 0 (suite de tests de Kevin Thacker). - Correction d'un mauvais temps piste à piste dans l'émulation du lecteur 3 pouces qui avait été introduit dans la version 1.13 (ceci corrige les routines de chargement qui ne marchaient plus, comme celle de Sappy de Semilanceata). - Correction dans la gestion de la mémoire vidéo sur CRTC 3 et 4 lorsque le registre 1 est plus grand que le registre 0 (suite de tests de Kevin Thacker). - Changement de la gestion des minuteries internes pour la portabilité AmigaOS et AROS. - Ajout du support de la conversion des pages de codes des caractères via la bibliothèque codesets.library pour la portabilité AmigaOS et AROS (la bibliothèque native charsets.library est toujours utilisée sur MorphOS car elle est *beaucoup* plus rapide). - Ajout du support des points d'arrêt sur les mnémoniques dédiés de Maxam et WinAPE. - Ajout d'une option dans le menu fenêtres afin de choisir si les vues de désassemblage doivent afficher les mnémoniques des points d'arrêt dédiés de Maxam et WinAPE sous leur forme native ou en tant qu'instructions spéciales de Maxam (BRKM) et WinAPE (BRKW). - Correction d'une bascule interne de verrouillage de la synchronisation verticale qui n'était pas remise à zéro lors de la programmation du registre 7. - Ajout d'un commutateur "WAIT" à la commande AREXX "KEYBOARDSTROKE" afin de demander à attendre la fin de l'injection des appuis touche. - Mise à jour des exemples de cross-développement pour utiliser l'assembleur Z80 vasmz80_oldstyle plutôt que pasmo. - Déplacement de tous les scripts (AREXX et Lua) dans un tiroir unique nommé "Scripts". - Ajout des nouvelles icônes créées par Mathieu 'Hwikaa' Delaruelle, dans l'interface graphique, sur les tiroirs et pour les types de fichiers. * Version 1.13 (07.11.2016) : - Correction d'une notification de fichier qui n'était pas supprimée lorsqu'un fichier DSK ne pouvait pas être inséré. - Correction d'un bug lors du déverrouillage de l'ASIC consécutif à un reverrouillage (suite de tests de Kevin Thacker). - Implémentation des artéfacts d'écriture sur le CRTC et le Gate Array lors d'une tentative de lecture (suite de tests de Kevin Thacker). - Correction de bug mineurs dans l'émulation du PPI natif et du PPI intégré dans l'ASIC (suite de tests de Kevin Thacker). - Correction d'un vilain bug lors de la lecture des données sur le PSG tandis qu'aucun registre n'est sélectionné (de la mémoire innocente était utilisée comme value retour au lieu de ne simplement rien faire). - Correction des drapeaux internes IFF1/IFF2 du Z80 qui étaient mis à jour trop tard après la mnémonique EI (suite de tests de Kevin Thacker). - Corrections de bugs mineurs dans l'émulation des CRTCs (suite de tests de Kevin Thacker). - Réécriture partielle de la gestion interne de la bordure d'écran sur les CRTC 0 et 2 (aucun changement visible). - Ajout d'un menu contextuel sur le bouton de commutation du mode de saisie des registres afin de choisir entre l'affcihage décimal ou hexadécimal (demande de Krusty). - Changements cosmétiques dans la section de pagination de la mémoire pour les fenêtres de l'éditeur mémoire et du désassembleur. - Correction d'un bloquage de l'interface graphique lorsque la fenêtre de désassemblage était utilisée avec une origine à la fin de la mémoire. - Amélioration de la commande AREXX "KEYBOARDSTROKE" afin de fonctionner de manière synchrone et pour simuler l'appui sur la touche [RETURN] à la fin de chaque chaîne ("RAWKEYPRESS", "RAWKEYRELEASE", "RAWKEYSTROKE" demeurent quant à elles totalement asynchrones). Vous aurez sans doute à modifier vos scripts AREXX si vous utilisiez cette commande. - Ajout d'un lien hypertexte qui pointe vers l'archive sur Aminet dans le message indiquant que la bibliothèque MUI HexEdit n'a pas été trouvée afin de faciliter son installation (les instructions étaient toutefois déjà présentes dans le guide fourni avec ACE). - Suppression des raccourcis sur les touches de signes du pavé numérique pour permettre leur utilisation par la fonctionnalité d'adaptation automatique du clavier du CPC à celui de la machine hôte. - Ajout d'un raccourci pour l'entrée du menu permettant d'afficher ou de masquer l'interface afin de remplacer celui supprimé au niveau du pavé numérique (les autres raccourcis avaient déjà leur substitut dans le menu). - Ajout de nouveaux modes pas à pas pour permettre de ne pas rentrer dans les sous routines ou d'en sortir directement (accessible depuis les contrôles de la fenêtre Z80). - Ajout de raccourcis d'accès direct aux modes pas à pas dans la fenêtre Z80 (control + flêches/return). - Annulation du correctif introduit dans la version 1.12 qui empêchait la synchronisation verticale de se déclencher pendant l'affichage des lignes additionnelles. - Correction d'un problème de boutisme et ajout du support 64 bits dans le code de gestion de la localisation. - Léger changement dans la commande AREXX "START" (tous les modes pas à pas sont désormais accessibles). - Amélioration de l'organisation de la fenêtre d'édition du CRTC. - Amélioration du décodage et de la mise à disposition en interne des arguments fournis au lancement du programme afin de faciliter la portabilité d'ACE. - Correction d'un problème potentiel dans l'interface de répertoire partagé via la cassette si elle était désactivée pendant un accès. - Correction d'une protection d'accès aux données entre la tâche principale et la tâche d'émulation (aucun bug connu toutefois). - Correction d'un gestionnaire d'événéments MUI qui n'était pas désinstallé avant la destruction de l'application. - Retrait de l'accès manuel au réglage de la version du Gate Array à utiliser, aussi bien dans l'interface graphique que dans les types d'outils et les commandes AREXX (c'était effectivement inutile car il était de toute manière automatiquement resynchronisé en fonction du type de CRTC configuré). - Le greffon "Manettes de jeu" est maintenant activé par défaut. * Version 1.12 (16.07.2016) : - Migration de gcc4 vers gcc5 (légère amélioration des performances). - Correction d'un bug dans l'émulation CRTC 0 qui empêchait l'intro de The Other World 3 and la Preview #3 d'Overflow de fonctionner correctement (indirectement remonté par Megachur). - Remplacement d'un correctif (introduit dans ACE 1.9) relatif à la gestion de la bordure qui corrigeait l'intro de Voyage 93 mais cassait la Welcome X 2 Part 1. Maintenant les deux démos fonctionnent comme attendu sur CRTC 0. - Correction dans l'émulation CRTC 1 d'un problème de synchronisation qui survenait lorsque le registre 4 est reprogrammé pendant qu'il est évalué en interne à la fin d'un écran ; ceci corrige l'intro de Chany dans Demoniak 5 (remonté par Megachur). - Correction de la remise à zéro du compteur relatif au registre 9 lorsque le registre 9 est reprogrammé pendant que le registre 4 vaut 0 ; ceci corrige la cracktro de Chany pour Double Dragon (remonté par Megachur). - Correction du déclenchement intempestif de la synchronisation verticale pendant l'affichage des lignes additionnelles (registre 5) ; ceci corrige la Cuddly - Budbrain (remonté par Megachur). - Correction d'un bug dans la gestion de l'adresse vidéo pendant le balayage des lignes additionnelles sur CRTC 0, 2, 3 and 4. - Amélioration de la détection de débordement dans l'émulation CRTC en fonction du type (utilisé pour la fenêtre d'informations CRTC). - Ajout d'une protection par sémaphore qui était manquante dans l'API interne de gestion du crayon optique qui aurait pu provoquer des comportements étranges avec l'émulation des phasers. - Ajout d'un module d'extension pour émuler la souris Kempston. - Changement dans le design interne pour permettre l'injection d'événements liés aux manettes de jeu depuis les modules d'extension, et passage de l'API des modules d'extension à la version 2 avec une nouvelle API pour pouvoir émuler des périphériques branchés sur le port entrée/sortie des manettes de jeu. - Retrait de l'émulation interne des manettes de jeu et ajout d'un nouveau module d'extension pour manettes de jeu (comme l'implémentation interne initiale ce module utilise toujours la lowlevel.library ; libre à celui qui voudra en créer un basé sur la nouvelle sensor.library de MorphOS). - Ajout d'un module d'extension pour émuler la souris AMX. - Activation du quantum Z80 interne qui semble finalement bel et bien améliorer le multitâche (réglé à 1/300ème de secondes). - Correction de la chaîne de version intégrée dans l'exécutable qui était corrompue et trompait Grunch. - Correction de la passerelle vers le disque dur pour retourner un fichier binaire vide plutôt qu'un fichier ASCII vide lors de l'ouverture d'un répertoire afin d'éviter le message "File not opened" affiché par le firmware. - Correction d'un bug qui empêchait le chargement des instantanés utilisant des blocs optionnels s'ils avaient été sauvés avec davantage de mémoire que celle configurée dans ACE. - Corrections internes pour la compatibilité avec les systèmes 64 bits. - Les lecteurs de disquettes sont désormais automatiquement reconfigurés en fonction des images disque insérées pour décider s'ils doivent être 40 ou 80 pistes, et simple ou double tête (ceci empêche certains loaders peu robustes de faire n'importe quoi). - Les fichiers PNG pour les captures d'écran et les icônes des instantanés sont maintenant sauvés directement avec la png.library plutôt qu'avec Reggae. - Correction du masque de bordure de l'ASIC qui n'était jamais arrêté si bit 7 du registre SSCR était remis à zéro pendant l'affichage du masque (corrige le logo qui clignotait dans BarBar/Benediction). * Version 1.11 (13.09.2015) : - Correction du décalage des pixels en mode 2 sur CPC avec CRTC type 4 (AMS40226). - Correction d'un bug lors du tracé de la partie noire de l'affichage (ce bug avait été introduit dans la version v1.10). - Correction d'un écrasement mémoire (par chance sans effet) dans la gestion du tampon vidéo. - Réécriture partielle de la gestion interne du tampon vidéo afin de simplifier le code et de rendre la compilation plus rapide (car GCC est vraiment un monstre de lenteur !). - Ajout de l'émulation des caractères hybrides, mélange bordure et affichage, lors du démarrage d'un écran lorsque le registre 6 est positionné à 0 sur CRTC 0 et 2. - Ajout de l'émulation de la demi-bordure sur le dernier caractère des lignes sur CRTC 0 et 2 (peut-être observé dans la démo OUT(Dated) de Semilanceata). - Correction d'un bug dans la gestion du numéro de version des fichiers de traduction. - Léger changement du menu de configuration de l'interface cassette. - Correction du chargement des instantanés pour gérer de multiples blocs optionnels y compris ceux qui pourraient être inconnus. - Ajout d'une commande AREXX pour exporter les points d'arrêt configurables positionnés dans un scripts AREXX. - L'accès à la fenêtre des points d'arrêt configurables n'est désormais plus interdit lorsque les points d'arrêt sont désactivés (simplement, le contenu de la fenêtre n'est pas éditable). - Ajout de la gestion d'un nouveau bloc optionnel contenant la liste des points d'arrêt configurables lors de la sauvegarde et du chargement des instantanés. - Tenter de changer un instantané invalide ne redémarrere plus le CPC émulé. - Ajout d'un avertissement lorsque le type de CRTC configuré ne correspond pas à celui trouvé dans un instantané. - Correction d'un bug qui faisait que le type de CRTC sauvé dans les instantanés était toujours celui utilisé au lancement et non le dernier choisi. - Ajout d'un avertissement lorsque le firmware configuré ne correspond pas à celui trouvé dans un instantané. - L'option de désactivation de l'affichage des messages fonctionne désormais également pour les instantanés. * Version 1.10 (15/05/2015) : - Ajout de la traduction en allemand grâce à Stefan 'polluks' Haubenthal. - Correction de la gestion de l'overlay pour éviter un problème d'alignement qui était mis en évident par MorphOS 3.8 (Stefan Blixth et Charlie). - Modifications dans la gestion du tampon vidéo afin d'optimiser l'usage mémoire. - Nettoyage du code d'émulation du PSG et suppression d'une routine de mixage audio alternative qui n'était finalement pas utilisée. - Ajout de l'accès au réglage de la synchronisation horizontale de l'écran (le petit trou de vis derrière votre CTM). - Modification dans la gestion du tampon audio afin d'être plus modulaire et mieux isolé du reste. - Ajout d'une interface pour modules d'extensions sous la forme de bibliothèques qui peuvent ajouter l'émulation de certaines cartes d'extension à ACE sans nécessiter la moindre modification dans l'émulateur lui-même. - Retrait de l'émulation intégrée de la Digiblaster et implémentation de celle-ci sous la forme d'un module d'extension. - Correction d'un bug qui faisait que l'émulation pouvait se figer pendant quelques secondes juste après avoir désactivé la sortie audio. - Ajout d'un type d'outil IS=INTERNALSPEAKER et d'une option dans le menu pour mixer la sortie audio comme si le haut parleur interne du CPC était utilisé (non accessible en émulation CPC+). - Retrait de l'émulation intégrée de l'imprimante et implémentation de celle-ci sous la forme d'un module d'extension. - Retrait des types d'outils obsolètes DB=DIGIBLASTER, EP=EMULATEPRINTER, PF=PRINTERFILE et SLC=SCANLINECOLOR. - Amélioration de la gestion interne des interruptions du Z80 émulé pour fonctionner plus efficacement avec la nouvelle interface de modules d'extension. - Correctif dans l'émulation du CRTC pour gérer la remise à zéro assez étrange du compteur interne associé au registre 9 lorsque ce dernier est reprogrammé sur la dernière microseconde avant le début d'une nouvelle rupture. * Version 1.9 (30/03/2015) : - Désactivation du bouton feu 3 sur CPC+ (il n'est pas câblé sur le port joystick), - Changement de la touche ESC qui est maintenant accessible via la véritable touche ESC du clavier de l'hôte plutôt que celle correspondant à son emplacement sur CPC, - Changement de certaines touches de raccourci du menu, - Ajout de fenêtres pour le clavier et les manettes de jeu, - Ajout d'une option qui permet de reconfigurer automatiquement la ROM firmware du CPC afin de correspondre au mieux à la disposition des touches utilisée sur la machine hôte (disponible au travers du type d'outil AKM=ADAPTKEYMAP ou via le menu des préférences). Cette fonctionnalité est vraiment pratique, mais faites attention au fait qu'elle pourrait être incompatible avec certains logiciels CPC. De plus les touches supplémentaires qui existent sur le clavier de la machine hôte sont affectées en parallèle de la manette 0, et les combinaisons "alt" + touche sont remplacées par "control" + touche sur le CPC (il n'y a pas de touche "alt" sur CPC). Veuillez aussi noter que les combinaisons "shift" + "alt" + touche ne sont pas accessibles du côté du CPC (le firmware ne gère pas les combinaisons multiples), - Correction d'un petit bug dans les onglets des périphériques de la fenêtre principale ; certains boutons pouvaient être actifs alors qu'ils ne devaient pas l'être, - Correction d'un bug stupide dans la pagination mémoire qui empêchait la version cartouche de Blue Angel 69 de fonctionner (CraigsBar and TotO), - Correction d'un bug dans la gestion du registre splt de l'ASIC sur CPC+, - Correction d'un problème dans l'émulation de l'ASIC, en rapport au partage erronné du vecteur d'interruption entre le DMA0 et le Raster, qui empêchait Allergy (démo de Semilanceata) de fonctionner, - Correction d'un bug introduit dans la version 1.8 lors de l'utilisation de valeur aléatoires dans les émulations ASIC et FDC (la valeur maximale supposée n'était jamais atteinte), - Amélioration de l'émulation CRTC 3/4 (corrige plusieurs démos qui ne tournaient pas correctement sur ces CRTC émulés ; comme par exemple Glooms Demo, Camembert 4 et Black Sabbath), - Réglage de certaines synchronisation entre l'ASIC et le Z80 pour améliorer l'émulation CRTC 3, - Ajout du type d'outil NPS=NOPLUSSCREEN pour désactiver la commutation automatique sur les réglages d'écran CPC+ (pour la position horizontale) lorsque l'émulation CPC+ (ou CRTC 4) est activée, - Correction de l'option de réglage des "scanlines" qui avait été cassée dans la version précédente, - Simplification internes relatives à la gestion de la position du canon à électron, - Correction du double-clic de passage en mode plein écran qui ne fonctionnait pas si le pointeur de souris n'avait pas bougé au préalable, - Ajout d'une fenêtre pour visualiser le contenu des sprites hard et leur palette, - Activation de la gestion de l'aspect ratio en mode WritePixelArray (utilisé lorsque l'overlay est désactivé). Ce mode (et quelques autres;) était déjà implémenté dans la version 1.8 mais n'était pas activé dans la version publique. Un effet secondaire est que l'option SLC=SCANLINECOLOR (qui était moche et inutile) ne fonctionne désormais plus en mode WritePixelArray (et comme elle n'a jamais fonctionné en overlay, elle est maintenant totalement inopérante et sera sans doute supprimée plus tard). L'ancien mode WripePixelArray non retaillable a été totalement retiré du code, - Correction internes pour mettre à jour le canal alpha avec une valeur valide lorsque le modes de pixel ARGB ou RGBA sont utilisés, - Léger changement dans le sequençage de mise à jour du tampon de l'overlay, - Correction d'un problème potentiel lors du rafraîchissement des fenêtre de mémore lorsque la configuration ROM/RAM est modifiée depuis l'interface AREXX ou le menu, - Ajout de la commande AREXX FLASHFIRMWARE pour changer la ROM firmware, - Correction d'un bug dans l'activation de la bordure sur les CRTC 0, 2, 3/4 (corrige l'intro de Voyage 93 sur ces CRTC), - Retrait de l'option inutile qui permettait de sélectionner manuellement le jeu de caractères à utiliser depuis le menu, - Amélioration de la conversion de table de caractères entre le CPC et la machine hôte ; ils sont désormais basés sur la reconnaissance des symboles présents dans la ROM firmware au lieu d'utiliser des tables prédéfinies, et ne sont plus limités ni aux firmware officiels du CPC, ni à l'ISO-8859-1, - Ajout d'une fenêtre pour analyser l'activité des canaux DMA, - Ajout de l'émulation du bruit ménanique du relais cassette, - Correction de quelques bugs (pratiquement) sans effet dans l'émulation du PPI, - Correction de bugs mineurs lors de l'arbitration entre le Z80, le PPI, le PSG et les canaux DMA, - Implémentation de toutes les instructions combinées (illégales) des DMA, - Ajout d'un script d'exemple de cross-développement en Lua (basé sur le script REXX qui était déjà fourni), - Ajout des types d'outils NTS=NOTAPESOUND et NTR=NOTAPERELAY pour désactiver le retour audio de la cassette et du relais. * Version 1.8 (19/11/2014) : - Ajout d'une vérification du mode écran pour empêcher ACE d'être lancé sur un écran incompatible (8 bits), - Ajout du support du glisser-déposer sur la fenêtre principale et l'appicon pour les fichiers disque, cassette, cartouche et instantanés. - Re-introduction du saut de trame automatique expérimental et du type d'outil MS=MAXFRAMESKIP (désactivé par défaut), - Ajout de la capture d'écran et de la commande AREXX GRAB associée, - Ajout de la touche de raccourci F11 pour faire des captures d'écran, - Ajout de nouveau du support de nouveaux mode de pixels et modification de la gestion des buffers d'affichage en vue du support de nouveaux rendus ultérieurement, - Ajout de l'alias NW pour le type d'outil NW=NOWARN=NOWARNINGS, - Ajout de la sauvegarde d'une icône avec une miniature de la capture d'écran lors de l'enregistrement d'instantanés (peut être désacité via le type d'outil NSI=NOSNAPSHOTICONS ou le menu des préférences), - Améliorations mineures dans la fenêtre d'informations sur le type de CPC émulé, - Correction de la mise à jour de certains événements internes, - Correction d'une corruption mémoire potentielle lors d'un double lancement, - Ajout d'un type d'outil NAG=NOANTIALIASEDGRABS pour sauver des captures d'écran sans y appliquer aucun filtre (également disponible depuis le menu des préférences), - Changement du système de version du catalog qui est maintenant dissocié du numéro de version d'ACE et qui ne changement plus avant une version majeure ; de cette manière les traducteurs pourront facilement fournir des traductions alternatives qui resteront compatibles avec les prochaines version d'ACE (seuls les nouveaux textes ne seront pas traduits mais tous les autres continueront de fonctionner), - Correction d'un problème de centrage dans le calcul de rendu de l'échantillon audio qui avait été introduit avec le support de la cassette, - Ajout automatique de l'extension ".sna" aux noms de fichiers en étant dépourvus lors de la sauvegarde des instantanés via les requêtes de fichier de l'interface graphique, - Ajustement de quelques options de compilation afin de pouvoir supprimer quelques casts surabondants et perturbants dans le code en vue de faciliter le portage sur AmigaOS 4.1. * Version 1.7 (15/06/2014) : - Ajout de l'émulation cassette au travers de fichiers audio (en lecture seule pour le moment), - Ajout d'un type d'outil TAPESPATH pour choisir le chemin par defaut des fichiers audio cassette, - Ajout de la ROM firmware française pour les CPC464. - Remplacement de la ROM CP/M 0.7 qui était mauvaise dans les distributions précédentes, - Ajout d'un type d'outil OS=OSVERSION pour choisir la version du système d'exploitation à utiliser (de 1 à 4). N'importe quelle version du système d'exploitation est compatible avec n'importe quel modèle de CPC; même la version 4 qui était utilisé sur les CPC+ est compatible avec les CPC ancienne génération. Par défaut, c'est la version 3 qui est utilisée car la grande majorité des logiciels sont pensés pour tourner avec cette version, - Ajout d'un type d'outil NDI=NODISCINTERFACE pour désactiver complètement l'interface disquette afin de pouvoir émuler un CPC464 ou 464plus de base, - Remaniement du menu des préférences pour les rendre plus facile à utiliser par rapport aux nouvelles options disponibles, - Ajout de la désactivation du Trojan Light Phazer lorsque l'on passe de l'émulation CPC+ à l'émulation CPC (le Trojan Light Phazer n'est disponible que pour CPC+), - Correction d'un bug qui rendait la ROM firmware inopérante pour les accès cassette lorsque la passerelle vers le disque dur était désactivée à la volée, - Ajout d'un type d'outil TAPE pour spécifier une cassette à insérer au démarrage, - Ajout d'un type d'outil TAP=TAPEAUTOPLAY pour activer automatiquement la lecture lorsqu'une cassette est insérée, - Déplacement de toutes les ROMs système utilisées par défaut dans un tiroir "System" plutôt que "ROMs" (ce dernier est supposé être utilisé pour les ROMs d'extension de l'utilisateur), - Correction d'un petut bug graphique dans la fenêtre du désassembleur, - Ajout de commandes AREXX relatives à la gestion cassette, - Correction d'un bug dans la gestion des événements qui faisait que les onglets de gestion des périphériques avaient la priorité sur l'émulateur pour certaines touches de raccourcis, - Changement de certains raccourcis claviers, - Ajout d'un type d'outil CPM=AMSDOS pour configurer la ROM 7 disque interne (ceci est différent du type d'outil ROM7 qui représente une ROM 7 externe), - Correction d'une mauvaise référence de noeud d'aide dans la fenêtre des préférences de l'écran, - Amstrad est désormais la seule marque possible lorsque l'on est en émulation CPC+, - Ajout d'une fenêtre d'information avec image à propos du modèle de CPC actuellement émulé, - Ajout d'icônes pour le tiroir principal d'ACE ainsi que pour ceux pour les disquettes, les cassettes, les cartouches, les instantanés et les ROMs, - Ajout d'icônes dans les onglets des périphériques, - Ajout d'icônes projet préconfigurées pour émuler des CPC464, CPC664, CPC6128, 464plus et 6128plus de base, - Ajout dans le menu de quelques préférences qui n'étaient jusqu'alors disponibles que via les types d'outil au démarrage, - Modification de la façon d'obtenir le nom de l'écran ouvert automatiquement lors du passage en plein écran de façon à ce qu'il corresponde toujours au nom de l'instance en cours, - Ajout d'un test de cohérence sur la commande à exécuter à chaque point d'arrêt (les commandes invalides sont maintenant ignorées), - Remaniement du démarrage en mode CLI pour mieux fonctionner avec PROGDIR:, - Correction d'un vieux bug lors du démarrage d'ACE qui empêchait le lancement multiple depuis le shell et le lancement depuis des icônes de type projet, - Ajout d'une requête au démarrage d'ACE pour choisir ce qu'il faut faire lorsqu'une autre instance est déjà en train de tourner, - Ajout d'une commande AREXX pour piloter l'icônification d'ACE, - Ajout des descripteurs de fichiers et des icônes associées pour permettre à Ambient de reconnaire les fichiers DSK, CPR et SNA, et d'y associer ACE, - Ajout d'une type d'outil FILES à paramètres multiples FILES qui reconnait automatiquement les fichiers fournis et les charge en conséquence dans ACE en tant que disquette, cassette, cartouche et/ou instantané, - Ajout d'un type d'outil LM=LAUNCHMODE pour choisir le mode de démarrage par défaut d'ACE : demander à l'utilisateur ("Ask user"), utiliser l'instance existante s'il y en a une ("Single") ou toujours lancer une nouvelle instance ("Multiple"), - Ajout d'un accès au guide utilisateur depuis le menu (utile pour ceux qui n'ont pas de touche HELP sur leur clavier). * Version 1.6 (21/04/2014) : - correction d'un bug dans l'entête des fichiers sauvés au travers de la passerelle vers le disque depuis l'interface cassette, - correction des couleurs initiales du Gate Array (PulkoMandy), - correction de l'inversion des tables de monochrome et noir et blanc pour l'émulation des modèles d'écrans (Krashan & PulkoMandy), - correction du menu de sélection du pointeur optique pour empêcher la multi-sélection, - correction d'un bug sur les instructions de bloc dans le désassembleur, - ajout d'un champ de taille dans l'entête des fichiers sauvés au travers de la passerelle vers le disque dur. - correction d'un bug dans la routine CASOutChar utilisée pour la passerelle vers le disque dur (PulkoMandy), - amélioration de la compatiblité de la routine CASInChar de la passerelle vers le disque dur, - correction d'inconsistances dans la traduction anglaise, - correction de mots de vocabulaires dans les textes en français, - réagencement des gadgets de la fenêtre principale pour gagner de la place, - ajout du type d'outil DKB=DKTRONICSBUGS pour activer l'émulation d'une extension mémoire DK'Tronics (ces extensions gèrent mal les commutations du type &C3 lorsqu'une ROM haute est activée et ne permettent pas le masquage par la page I/O ASIC des CPC+), - ajout du type d'outil 64K=64KEXPMEMSCHEME pour émuler un CPC ayant 64Kio de mémoire de base au lieu d'un CPC ayant une mémoire de base de 128Kio (sur les CPC ayant 64Kio de base c'est la mémoire centrale qui est commutée lors d'une tentative d'accès à une page non existante au lieu de la mémoire des 64Kio d'extension interne sur les CPC avec 128Kio de base), - légère réduction de la taille par défaut de la fenêtre principale en mode overlay, - ajout de la position courante du canon à électron dans la fenêtre des informations vidéo, - réagencement des fenêtres du Z80 et du CRTC, - ajout de compteurs utilisateur pour les microsecondes, les lignes et les trames, - retrait des points d'arrêt de la fenêtre principale pour les mettre dans la fenêtre Z80, - ajout de points d'arrêt sur de mauvaise HBL/VBL (mode Vanity-proof !), - ajout d'un véritable mode pas-à-pas (il n'est plus nécéssaire de l'activer et de le désactiver à la main), - ajout de l'option STEP à la commande AREXX START AREXX pour accéder au mode pas-à-pas facilement, - ajout de notification manquantes pour resynchroniser l'interface graphique suite à certaines actions via le port AREXX, - ajout du support des diodes en OSD en mode non overlay, - ajout d'une icône d'avance rapide en OSD, - nouvelle correction du dernier problème connu avec le CRTC 1 car celle effectuée dans la version 1.5 n'était pas correcte, - ajout de la compatibilité avec les microprocesseurs petit-boutistes (Pulkomandy). - ajout de commandes AREXX pour récupérer et remettre à zéro les compteurs utilisateurs, - ajout d'une commande AREXX pour récupérer l'état des derniers points d'arrêt activés, - ajout du type d'outil UBC=USERBREAKPOINTCOMMAND pour configurer une commande à exécuter à chaque activation d'un point d'arrêt, - ajout d'un mode observateur aux points d'arrêt configurables, - Remplacement du seuil par la notion de pas dans les points d'arrêt, - déplacement des préférences de l'écran à émuler dans une fenêtre séparée, - ajout de la possibilté de nommer les points d'arrêt configurables, - ajout de la possibilité de définir une condition complexe lors de la configuration des points d'arrêt, - optimisation de la gestion des points d'arrêt, - correction de divers problèmes sur les émulations CRTC 0/2/3/4, - ajout d'un point d'arrêt sur une position pointée à l'écran, - ajout d'une commande AREXX pour piloter le point d'arrêt par pointage à l'écran, - retrait des points d'arrêt sur tous les opcodes qui est désormais obsolète (remplacé par le véritable mode pas à pas), - déplacement de l'option de conversion des caractères CPC depuis les fenêtres d'édition mémoire, Z80 et du désassembleur vers le menu (ce réglage est désormais commun à toutes les fenêtres), - ajout d'un accès direct à toutes les tables de conversion existantes (automatique, anglaise, française, espagnole et danoise) depuis le menu, - ajout d'une option pour activer ou désactiver le décodage des RST système dans le désassembleur intégré (jusqu'alors ce décodage était toujours actif), - ajout de la ROM firmware danoise (version CPC6128) à l'arcihve d'ACE, - ajout de la détection du danois pour la sélection automatique de la ROM firmware au démarrage, - amélioration de la classe MUI interne pour la gestion de l'édition mémoire afin de tenir compte de la conversion des caractères en saisie et non seulement pour l'affichage, - ajout de la possibilité de rééssayer lorsque la mise à jour d'un DSK a échoué suite à un verrou partagé sur la fichier, - ajout du mode de saisie manuel des adresses, - ajout du tri alphabétique dans l'affichage du catalogue sur la passerelle vers le disque dur, - ajout d'une icône en OSD pour la pause, - réduction du nombre d'images par secondes par défaut à 10 au lieu de 60 en vitesse débridée afin d'avoir une accélération plus notable, - amélioration de la commande AREXX KEYBOARDSTROKE pour tenir compte de la conversion des caractères depuis la machine hôte vers le CPC, - ajout d'une attente de sécurité en vitesse d'émulation débridée, - ajout du support manquant quant à la possiblité de désactiver une synchronisation en cours d'exécution sur CRTC 0 et 1. * Version 1.5 (07/04/2013) : - correction du texte de la fenêtre "À propos de...", - correction d'un bug mineur dans la gestion des erreurs au démarrage, - amélioration du format de gestion interne des disquettes, - nettoyage du code du Z80, - ajout de la possibilité de débrancher le lecteur B (le CP/M détectera alors un seul lecteur et adaptera son comportement), - correction du dernier problème connu dans l'émulation du CRTC type 1 (il est peut-être désormais parfait !), - légères améliorations dans l'émulation des CRTC 0, 3 et 4, - activation de l'accès à toutes les types de CRTC (les CRTC 0, 2, 3 et 4 ne sont toutefois par encore terminé), - activation de l'accès à toutes les versions de Gate Array à l'exception 40008, - gestion des différences de rendu des couleurs sur les divers Gate Array, - ajout de contrôles pour régler la luminosité de l'écran et la synchronisation verticale, - ajout du support complet de l'ASIC des CPC+ (y compris tous les bugs connus relatifs aux DMA, aux interruptions et au PPI), - Changement dans la présentation des fenêtres de l'éditeur de mémoire et du désassembleur, - ajout de l'accès aux modes de commutation mémoire spéciaux du CPC+ dans les fenêtres de l'éditeur de mémoire et du désassembleur, - correction d'un bug dans les fenêtres de l'éditeur de mémoire et du désassembleur qui aurait pu provoquer des tentatives de lecture dans de la mémoire désallouée lorsque la configuration des ROMs était changée via le port AREXX, - changements dans les mécanismes d'allocation mémoire des structures internes pour éviter de potentiels problème de dépassement de pile dans le futur, - correction d'un bug potentiel dans l'initialisation de la mémoire de l'émulateur, - optimisation des accès aux ports entrées/sorties du Z80, - légère augmentation de la taille par défaut de la fenêtre principale, - amélioration du rendu visuel des couleurs dans la fenêtre de l'analyseur de gate Array (les couleurs y sont maintenant représentées exactement comme dans l'émulateur lui-même en fonction du Gate Array sélectionné), - ajout du support des cartouches CPC+ via les fichiers CPR (une fausse cartouche est intelligemment émulée en fonction des ROM firmware et BASIC du CPC si aucune n'est insérée afin d'éviter des redémarrages inutiles lors de la commutation entre les modes CPC et CPC+), - ajout d'un type d'outil CARTRIDGESPATH pour choisir le chemin par défaut de stockage des cartouches CPC+ (fihiers CPR) ; par défaut "PROGDIR:Cartridges" est utilisé, - ajout d'un type d'outil CPR=CARTRIDGE pour choisir une cartouche à insérer dès le démarrage de l'émulateur, - ajout d'un type d'outil PLUS=CPC+=AMSTRADPLUS pour forcer le démarrage en émulation CPC+ au lieu de CPC. - correction d'un bug qui empêchait la désallocation des canaux audio à la sortie, - toute la gestion audio est maintenant faire dans la classe interne du moteur d'émulation comme tout le reste, - correction d'un bug dans la lecture de valeurs sur les CRTC 3 and 4, - ajout de raccourcis sur les touches F9 et F10 pour insérer ou éjecter les cartouches CPC+, - ajout de l'émulation des pistolets optiques via la souris (les Trojan Light Phazer et Magnum Light Phaser sont gérés), - ajout du support de la mise à jour différée des registres internes de l'ASIC des CPC+ (ceci permet par exemple la gestion du positionnement des split rasters au pixel selon l'instruction Z80 utilisée), - ajout de l'accès à un répertoire partagé du disque dur de la machine hôte depuis le CPC émulé via l'interface cassette (à pleine vitesse, avec gestion des noms longs et des sous-répertoires selon les limitations du firmware du CPC) ; vous pouvez maintenant utiliser directement les fichiers de votre disque dur et éviter l'utilisation des fichiers DSK lorsque c'est possible (seuls les logiciels utilisant proprement le système d'exploitation peuvent tirer profit du répertoire partagé) ; la navigation dans les répertoire se fait naturellement comme en AmigaShell grâce à la commande OPENIN (CD n'existe pas sur CPC) en utilisant "/" pour le répertoire parent et ":" pour le répertoire racine ; l'affichage des catalogues trop longs peut être interrompue avec [ESC] ou mise en pause avec [CONTROL] ; le répertoire partagé par défaut est "PROGDIR:Share" and peut-être configuré avec le type d'outil TAPE2HDPATH tooltype, - ajout du type d'outil TAPE2HD pour activer le répertoire partagé par défaut, - correction de bugs dans le système de trace interne pour le debuggage, - ajout d'une requête pour avertir de type d'outils invalides, - correction d'un bug de clignottement de l'affichage en vitesse d'émulation débridée qui avait été introduit en version 1.4, - correction de la requête de confirmation de sortie qui pouvait être bloquante lorsque plusieurs versions d'ACE tournaient en même temps, - ajout de la gestion de la section CPC+ dans les fichiers snapshot (compatible avec le format snapshot v3), - ajout de la signture d'ACE dans les snapshots, - ajout du type d'outils CARTRIDGESKEEPEXTROM pour désactiver l'invalidation automatique des ROM d'extension lorsqu'une cartouche est insérée, - ajout des commandes AREXX INSERTCARTRIDGE, EJECTCARTRIDGE, GETCARTRIDGDENAME, CRTC et GATEARRAY (RickD). - ajout de la gestion des extensions de fichier AMSDOS par défaut lors du chargement de fichiers sur le répertoire partagé (TAPE2HD) pour améliorer la compatibilité avec les programmes disquette. * Version 1.4 (18/07/2012) : - amélioration du saut automatique des trames, - amélioration de la gestion des événements internes, - optimisation du code d'émulation du Gate Array, - ajout de l'émulation différenciée des Gate Array 40007, 40008, 40010 ansi que des réimplémentations sous forme d'ASIC 40226 et 40489 (seuls les 40007 et 40010 sont accessibles dans la version publique pour le moment), - correction d'un problème éventuel dans le calcul de régulation de la vitesse d'émulation en cas de vitesse processeur variable au cours du temps (PowerBook G4), - calage de la régulation de vitesse sur l'audio lorsque c'est possible pour éviter un problème de dérive (mis en évidence sur PowerBook G4), - suppression de la tâche audio (le traitement audio est maintenant fait dans la tâche d'émulation), - ajout d'un cache sur les trames vidéo pour éviter de rares cas où la trame affichée était altérée par celle en cours de calcul, - la mémoire des trames vidéo est maintenant gérée par la tâche d'émulation au lieu de la tâche graphique, - retrait de l'option FRAMESKIP qui n'a jamais bien fonctionné et qui est devenue inutile avec la nouvelle gestion des événements internes, - ajout de l'option MANUFACTURER pour choisir la marque du CPC à émuler parmi ISP, Triumph, Saisho, Solavox, Awa, Schneider, Orion et Amstrad (Amstrad est utilisé par défaut, sauf pour les pays germanophones où c'est Schneider), - correction de la fenêtre de l'analyseur Gate Array qui pouvait être parfois mal dimensionnée, - la touche "F12" est maintenant câblée sur la touche "Enter" du pavé numérique du CPC (ceci permet de continuer d'avoir accès à cette touche sur les claviers n'en ayant pas, notamment sur PowerBook G4), - la classe MUI HexEdit.mcc est désormais facultative et n'est plus fournie dans l'archive d'ACE (les fenêtres avancées en faisant usage ne seront simplement pas affichées complètement), - correction d'un bug introduit lors de la migration sous gcc 4 dans la gestion du nom de l'écran public en mode plein écran (il était devenu impossible d'avoir plusieurs instances d'ACE en plein écran en même temps), - nouvelle icône plus parlante pour l'utilisateur moyen, - correction de quelques fautes de frappes dans les traductions française et anglaises. * Version 1.3 (14/05/2012) : - correction de la police de caractères et de la skin par défaut utilisées lorsqu'un mode plein écran personnalisé est configuré afin de toujours hériter de celles de l'écran workbench, - empêchement de l'ouverture d'un mode plein écran plus grand que la résolution du mode graphique utilisé (dans le cas d'un écran "virtuel" utilisé pour l'écran workbench et dont ACE héritait), - les touches de raccourcis gèrent de nouveau la répétition, - correctifs dans la gestion des extensions DSK de Simon Owen (confusion entre la détection des "weak sectors" et des "data gap"), - amélioration du système de détection des DSK potentiellement mal générés, - retrait de la correction à la volée des tailles de GAP#3 et de piste des DSK car cela provoquait autant de problèmes que ça n'en corrigeait (les tailles de piste sont toujours corrigées silencieusement dans certains cas bien précis où aucun doute n'est possible), - correctifs dans l'émulation des commandes "read track", "read data" et "write data" du FDC, - ajout d'un délais lorsqu'un disque est échangé dans un lecteur sans avoir fait d'éjection préalable afin que le CPC émulé ait le temps de détecter le changement (utile pour des logiciels qui scannent le lecteur pour détecter les changements de disque comme B.A.T., Fugitif ou Crime), - ajout de la gestion de l'extension DSK "Offset-info" de Simon Owen en lecture et en écriture (le block est reproduit dans les DSK qui le possédaient à l'origine et ignoré pour les autres), - ajout d'une demande de confirmation lorsqu'un disque doit être éjecté alors que les modifications qui y ont été apportées n'ont pas pu être retranscrites dans le fichiers disque image correspondant, - correction d'une mauvaise utilisation d'un FileInfoBlock dans la routine d'import DSK, - correction d'un bug dans la gestion du compteur de lignes du Gate Array introduit avec la version 1.2, - correction d'un bug dans le déclenchement de la synchronisation verticale du CRTC (désormais la Madness Demo fonctionne totalement), - correction d'un bug dans le déclenchement de la synchronisation horizontale du Gate Array introduit avec la version 1.2 (The Demo), - ajout d'un verrou sur la mise à jour de l'affichage vidéo pour évider la saturation de la pile d'événements MUI lorsque la mise à jour de l'interface graphique est suspendue pour une raison externe, - légère amélioration du saut automatique des trames en cas de manque de puissance, - correction d'un bug dans la prise en compte des signaux du Z80 par le Gate Array dans le cas des opcodes OUTD et OUTI (Beb), - ajout d'une option dans les types d'outils et le menu qui permet d'émuler des lecteurs de disquettes à accès instantanés (à activer avec prudence car elle est non compatible avec certains logiciels), - utilisation d'un gadget "Lamp" au lieu d'un "Color" pour la diode d'activité du lecteur de disquettes, - amélioration de la gestion des événements internes pour éviter les redondances, - correction d'un bug dans la gestion des points d'arrêt sur l'accès à des ports entrée/sortie, - simplifications dans le code d'émulation CRTC, - amélioration de la gestion de la prise en compte de l'offset sur CRTC 1, - ajout du support du mode entrelacé (gestion du registre 8), - simplication des fenêtres du Gate Array, du PSG et de la vidéo, - ajout d'informations dans la fenêtre du Gate Array, - ajout d'une prise en compte retardée de la mise à jour des registres 12 et 13 par rapport à la gestion des compteurs internes du CRTC (Dream Demo End, Impossible), - gestion de l'affichage partiel de l'octet de transition et des artefacts lorsqu'une synchronisation horizontale ou verticale commence ou s'arrête (Camembert 4, Dream Demo 6, Dream Demo End, Madness Demo), - correction d'un bug lors du déclenchement de la synchronisation verticale lorsque le retard vidéo est actif (3D Scroll, Take It Easy). * Version 1.2 (29/01/2012) : - migration du code de gcc 2 vers gcc 4 pour un gain en taille et en vitesse non négligeable, - ajout du support du double clic sur la fenêtre principale pour commuter le mode plein écran, - ajout d'un désassembleur intégré basé sur le travail de Cristian Dinu (reconnaît toutes les instructions non documentées et interprète les instructions RST étendues du firmware Amstrad), - amélioration de la fenêtre Z80 par l'ajout d'une zone d'affichage de l'état de la pile (et de la mémoire pointée par ses éléments) et d'une zone de visualisation du code désassemblé pointé par PC (avec accès rapide aux points d'arrêt), - amélioration de la fenêtre de l'éditeur de mémoire, - nouvelle correction dans l'émulation CRTC 1 lorsque les registres 12 et 13 sont modifiés durant le balayage des lignes du retard vidéo (phi2x), - correction de la désactivation de la bordure écran sur CRTC 1 lorsque le registre 6 est (re)programmé à une valeur non nulle lors de la première ligne d'une rupture (phi2x), - correction de la condition d'activation de la VBL durant une phase de gestion du retard vidéo, - amélioration des fenêtres des analyseurs PSG et Gate Array, et de l'éditeur CRTC, - ajout d'une fenêtre de désassemblage évoluée (navigation au fil des branchements, gestion des points d'arrêt, etc.), - meilleur découpage interne des modules CRTC et Gate Array pour la gestion des signaux de synchronisation vidéo, - optimisation du système de notification interne entre les différents objets représentant des états du CPC émulé, - ajout d'un panneau amovible d'accès rapide à la configuration des points d'arrêt dans la fenêtre principale, - désativation des options du menu qui sont sans effet lorsque la gestion des points d'arrêts est débrayée, - ajout d'une fenêtre de gestion détaillée des points d'arrêt, - ajout de commandes AREXX pour la gestion avancée des points d'arrêt, - amélioration de la gestion du clavier (filtrage et initialisation), - ajout de la possibilité d'activer ou de désactiver la conversion de la page de code ASCII du CPC vers celle de la machine hôte de façon indépendante pour chaque fenêtre d'édition (jusqu'à présent la conversion était tout le temps active pour toutes les fenêtres), - ajout des ROMs firmware espagnoles et danoises en version 1.0 (CPC464) dans l'archive d'ACE, - correction d'un bug dans la sélection des registres du PSG (phi2x). * Version 1.1 (18/09/2011) : - ajout du support des demi-cycles du Gate Array (la synchronisation entre le Gate Array, le CRTC et le Z80 est désormais parfaite), - correction de l'alignement synchro/display entre le Gate Array et le CRTC pour les CRTC 0, 1 et 2 (l'alignement était toujours celui des CRTC 3 et 4), - correction dans l'émulation CRTC 1 lorsque les registres 12 et 13 sont modifiés durant le balayage des lignes du retard vidéo (R5), - légère amélioration des émulations CRTC 0, 2, 3 et 4 (seuls les CRTC 0 et 1 sont activés dans la version publique pour le moment), - correction d'un bug dans la gestion des interruptions lorsqu'une VSync débutait alors qu'une HSync était en cours, - correction de fautes dans la traduction anglaise (Stefan A. Haubenthal). - améliorations dans la version française, - la classe Graph.mcc est désormais facultative ; ceci devrait permettre à ACE de tourner sous MorphOS 1.x, voir note 1 (Stefan A. Haubenthal). * Version 1.0p1 (16/08/2011) : - les arguments OFFSCREENCOLOR et SCANLINECOLOR provoquaient une lecture illégale à l'adresse $0 lorsqu'ils étaient omis (Grzegorz Kraszewski), - ACE pouvait planter lamentablement sur des systèmes localisés ni en français, ni en anglais (Grzegorz Kraszewski). * Version 1.0 (15/08/2011) : - première version publique.
Contents | Index | < Browse | Browse >
Programmation Architecture et Programmation : * Philippe 'OffseT' Rimauro - mailto:offset@cpcscene.net Icônes : * David 'Davebraco' Braconnier - mailto:info@davebraco.be * Mathieu 'Hwikaa' Delaruelle - mailto:hwikaa@gmail.com Documentation : * Philippe 'OffseT' Rimauro - mailto:offset@cpcscene.net Traductions : * Philippe 'OffseT' Rimauro - mailto:offset@cpcscene.net * Stefan 'polluks' Haubenthal - mailto:polluks@sdf.lonestar.org Tests : * Romain 'Krusty' Giot - mailto:krusty@cpcscene.net * Gilles 'Zik' Rimauro - mailto:zik@cpcscene.net * Antoine 'Tony' Reneaut - mailto:tony@cpcscene.net Portages : * Adrien 'PulkoMandy' Destugues - mailto:pulkomandy@pulkomandy.tk Remerciements : * 'RickD' pour ses quelques correctifs dans l'émulation Z80, * Julien 'Targhan' Nevo pour son support et ses exemples de code d'émulation du PSG, * Matthieu 'Grim' Gauzentes pour ses mesures précises des niveaux des couleurs et de mixage du PSG, * Gilles 'Zik' Rimauro pour ses mesures précises des signaux de synchronisations vidéo et ses conseils sur l'ergonomie d'ACE, * l'équipe de développement de Reloaded, dont la lecture des sources m'a permis de voir comment faire, mais aussi comment ne pas faire certaines choses. * Amstrad, pour avoir donné son autorisation à la distribution des ROMs système avec les émulateurs CPC dès les années 90. Outils utilisés : * MorphOS SDK et ses nombreux exemples, * Cubic IDE de Dietmar Eilert, * SimpleCat de Guido 'Geit' Mersmann, * DT2Raw de Christian 'tokai' Rosentreter, * Bin2C de Guido 'Geit' Mersmann, * Dt2RawImage de Ilkka 'itix' Lehtoranta, * lzmaLoader de Harry 'Piru' Sintonen. * LibMaker de Grzegorz 'krashan' Kraszewski.
Contents | Index | < Browse | Browse >
Interface AREXX ACE dispose d'un jeu de commandes assez complet qui vous permettra de faire à peu près tout ce que vous voulez ! Grâce à la modularité de l'interface AREXX, tout devient possible, tout devient automatisable... votre créativité sera sans limites ! Ainsi donc, vous trouverez ci-après la liste des commandes actuellement disponibles sur le port AREXX d'ACE. Commandes liées à l'application : * VERSION : retourne le numéro de version d'ACE. * HIDE : icônifie ACE. * SHOW : montre ACE à nouveau s'il était icônifié. * QUIT : quitte ACE. * FULLSCREEN ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état du mode plein écran . Mettre ACTIVATE à 1 passe en mode plein écran, le mettre à 0 sort du plein écran. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. * ICONIFY ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état du mode icônifié . Mettre ACTIVATE à 1 passe en mode icônifié, le mettre à 0 sort du mode icônifié. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. * SCREENTOFRONT : met l'écran hébergeant ACE en avant plan. * SCREENTOBACK : met l'écran hébergeant ACE en arrière plan. * WINDOWTOFRONT : met la fenêtre principale d'ACE en avant plan. * WINDOWTOBACK : met la fenêtre principale d'ACE en arrière plan. * WARNINGS ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état d'activation des messages d'avertissement. Mettre ACTIVATE à 1 active l'affichage des messages d'avertissement, le mettre à 0 le désactive. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. Note : les messages d'avertissement affichent des informations dans le cas du chargement de fichiers disque image ou SNA partiellement invalides. * KEYJOY ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état d'activation de l'utilisation des touches du clavier à la place de la manette 0. Mettre ACTIVATE à 1 active l'option, le mettre à 0 la désactive. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré Commandes de pilotage de l'émulateur : * RESET HARD/S : réinitalise/redémarre l'émulateur. Si le mot-clef HARD est précisé, alors il s'agira d'un redémarrage à froid. * PAUSE : met l'émulateur en pause. * START STEP : relance l'émulateur lorsqu'il est en pause. Si STEP est présent, alors un seul pas sera exécuté par le Z80 selon le mode fourni (OVER, INTO ou OUT) ; l'émulateur retournera ensuite aussitôt en pause. * CRTC CRTC=TYPE/N : si TYPE est présent, alors sélectionne l'émulation du CRTC spécifié (0 à 4, 3 étant le CPC+). Sinon, renvoie le type de CRTC actuellement émulé. * WILDSPEED ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état du mode de vitesse débridée. Mettre ACTIVATE à 1 passe en mode de vitesse débridée, le mettre à 0 retourne en vitesse réelle. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. * AUDIO=SOUND ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état de la sortie audio. Mettre ACTIVATE à 1 active la sortie audio, le mettre à 0 rend l'émulateur muet. TOGGLE permute le mode courant. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. * INSERTDISC FILE/A,DRIVE : insère le fichier disque image FILE dans le lecteur DRIVE (0/1 ou A/B, par défaut il s'agit du lecteur A). * EJECTDISC DRIVE : éjecte le fichier disque image du lecteur DRIVE (0/1 ou A/B, par défaut il s'agit du lecteur A). * GETDISCNAME DRIVE : retourne le nom du fichier disque image inséré dans le lecteur DRIVE (0/1 ou A/B, par défaut il s'agit du lecteur A). * INSERTTAPE FILE/A TAP=TAPEAUTOPLAY/S : insère le fichier audio FILE dans lecteur de cassette et passe en lecture si TAPEAUTOPLAY est spécifié. * EJECTTAPE : éjecte le fichier audio du lecteur de cassette. * PLAYTAPE : passe le lecteur de cassette en lecture. * STOPTAPE : stoppe la lecture du le lecteur de cassette. * GETTAPENAME : retourne le nom du fichier audio inséré dans le lecteur de cassette. * INSERTCARTRIDGE FILE/A FORCE/S : insère un fichier CPR FILE dans le port cartouche (CPC+ seulement). FORCE passe l'émulation en CPC+ si ça n'était pas le cas. * EJECTCARTRIDGE : éjecte la cartouche actuellement insérée (CPC+ seulement). * GETCARTRIDGENAME : retourne le nom du fichier CPR inséré dans le port cartouche (CPC+ seulement). * LOADSNA FILE/A : charge le fichier SNA FILE. * SAVESNA FILE/A : sauve un SNA de l'état actuel du CPC dans le fichier FILE. * GRAB FILE RAW/S : sauve une capture d'écran correspondant à ce qui est actuellement affiché par le CPC émulé. Si FILE n'est pas spécifié alors la capture est automatiquement sauvée dans le répertoire par défaut et le nom de fichier utilisé est retourné. Si RAW est spécifié, alors une capture d'écran brute sera sauvée (sans aucun lissage ni calcul d'aspect ratio). * FLASHROM FILE/A,ROM/A/N : charge le fichier FILE en tant que ROM haute numéro ROM. Attention, comme ça serait le cas sur un véritable CPC, changer la configuration des ROMs alors que le CPC est en train de tourner provoque généralement un plantage du système d'exploitation, et un redémarrage du CPC sera nécessaire. * REMOVEROM ROM/A/N : retire la ROM haute numéro ROM. Attention, comme ça serait le cas sur un véritable CPC, changer la configuration des ROMs alors que le CPC est en train de tourner provoque généralement un plantage du système d'exploitation, et un redémarrage du CPC sera nécessaire. * FLASHFIRMWARE FILE/A : charge le fichier FILE en tant que firmware (ROM basse) Attention, comme ça serait le cas sur un véritable CPC, changer la configuration des ROMs alors que le CPC est en train de tourner provoque généralement un plantage du système d'exploitation, et un redémarrage du CPC sera nécessaire. * RAWKEYPRESS KEY=CODE/A/N : simule l'appui de la touche CODE (étant le numéro de touche physique sur le clavier du CPC). * RAWKEYRELEASE KEY=CODE/A/N : simule le relâchement de la touche CODE (numéro de touche physique sur le clavier du CPC). * RAWKEYSTROKE KEY=CODE/A/N,DELAY/N : simule l'appui puis le relâchement de la touche CODE (numéro de touche physique sur le clavier du CPC) en attendant DELAY micro-secondes entre temps. Si le paramètre DELAY est omis alors l'attente est d'environ 40 000 micro-secondes, ce qui correspond à la moitié de la fréquence du balayage vidéo (la valeur maximal acceptée est de 1 000 000 micro-secondes, soit une seconde). Attention : si vous mettez une valeur trop faible, le CPC émulé ne détectera pas tous les changements d'état des touches ; en général le test clavier des jeux n'est fait qu'une seule fois par balayage vidéo. * KEYBOARDSTROKE NOENTER/S,WAIT/S,STR=STRING/A/F : simule l'appui d'une succession de touches contenues dans STRING sur le clavier et valide par la touche RETURN à moins que NOENTER/S ne soit spécifié. Contrairement à RAWKEYPRESS, RAWKEYRELEASE et RAWKEYSTROKE cette commande est indépendante du type de clavier (AZERTY ou QWERTY) puisqu'elle considère directement les codes ASCII. De plus, et toujours contrairement aux autres commandes qui sont asynchrones, les événements clavier associés à la chaîne seront injectés de manière synchrone, trame par trame. Enfin, si WAIT/S est mis, alors la commande attendra la fin de l'injection des appuis touches, sinon elle rendra la main immédiatement. Attention : cette commande a besoin d'une ROM firmware standard pour fonctionner correctement car elle détecte et utilise la configuration clavier du CPC émulé pour traduire les touches. Commandes pour l'assistance au développement : * POKE ADR=ADDRESS/A/N,VAL=VALUE/A/N,LINEAR/S : écrit un octet VALUE à l'adresse ADDRESS dans la mémoire du CPC. Si LINEAR est précisé, l'adresse sera considérée comme un accès linéaire à totalité de la mémoire du CPC (0x0000-0xFFFF = mémoire centrale, 0x10000-0x1FFFF = premiers 64ko, etc..). * PEEK ADR=ADDRESS/A/N,LINEAR/S : lit un octet à l'adresse ADDRESS dans la mémoire du CPC. Si LINEAR est précisé, l'adresse sera considérée comme un accès linéaire à totalité de la mémoire du CPC (0x0000-0xFFFF = mémoire centrale, 0x10000-0x1FFFF = premiers 64ko, etc..). * LOAD FILE/A,ADR=ADDRESS/N,OFT=OFFSET/N,LEN=LENGTH/N,LINEAR/S,RAW/S : charge le contenu du fichier FILE à partir de l'OFFSET, sur une taille maximale de LENGTH, à l'adresse ADDRESS. Si RAW est précisé, alors tout entête binaire sera ignoré même s'il est présent et valide. Lorsque vous chargez un fichier sans entête binaire ou en mode RAW, alors le paramètre ADDRESS est obligatoire. Lorsque vous chargez un fichier avec entête, l'adresse de chargement indiquée dans celui-ci sera utilisée lorsque le paramètre ADDRESS n'est pas spécifié. Si LINEAR est précisé, l'adresse sera considérée comme un accès linéaire à totalité de la mémoire du CPC (0x0000-0xFFFF = mémoire centrale, 0x10000-0x1FFFF = premiers 64ko, etc..). * SAVE FILE/A,ADR=ADDRESS/A/N,LEN=LENGTH/A/N,EXE=EXECUTION/N,LINEAR/S,RAW/S : sauve ce qui se trouve à l'adresse ADDRESS sur une longueur LENGTH dans le fichier FILE. Si EXECUTION est précisé, alors la valeur donnée sera utilisée pour sauver l'adresse d'exécution dans l'entête binaire du fichier (à noter que l'adresse d'exécution ne peut être supérieure à 0xFFFF). Si RAW est précisé, alors le fichier sera sauvé sans entête binaire. Si LINEAR est précisé, l'adresse sera considérée comme un accès linéaire à totalité de la mémoire du CPC (0x0000-0xFFFF = mémoire centrale, 0x10000-0x1FFFF = premiers 64ko, etc..). Dans ce cas, et si l'entête binaire n'a pas été désactivée à l'aide du paramètre RAW, l'adresse et la longueur sauvées dans celui-ci le seront sur 24 bits et non seulement sur 16 (ceci est en effet possible dans le format de l'entête binaire). * OUT PORT/A/N,VAL=VALUE/A/N : écrit un octet VALUE sur le port PORT du CPC. * INP PORT/A/N : lit un octet sur le port PORT du CPC. * BREAKPOINTS ACTIVATE/N,TOGGLE/S : si aucun paramètre n'est spécifié, retourne l'état d'activation des points d'arrêt. Mettre ACTIVATE à 1 active la gestion des points d'arrêt, le mettre à 0 la désactive. TOGGLE permute la gestion courante. De plus, si ACTIVATE est spécifié, alors TOGGLE est ignoré. * SETBREAKCONDITIONS VBL/S,HBL/S,OPCODE/S,INT=INTERRUPT/S,DISC=DISCACCESS/S, BADVBL/S,BADHBL/S,MAXAM/S,WINAPE/S : active les points d'arrêt sur les conditions spécifiées (et les désactive pour les autres). Sans paramètre, toutes les conditions de points d'arrêt seront désactivées. * ADDBREAKPOINT TYPE/A,ADR=ADDRESS/A/N,ADRMASK=ADDRESSMASK/N,ACCESS, VAL=VALUE/N,VALMASK=VALUEMASK/N,CONDITION,STEP/N,NAME,WATCHER/S : positionne un point d'arrêt du type TYPE (EXECUTE, MEMORY ou PORTS) nommé NAME pour un accès ACCESS (READ-ONLY, WRITE-ONLY ou READ-WRITE), à l'adresse ADDRESS, selon un masque ADDRESSMASK, pour une valeur VALUE avec un masque VALUEMASK toutes les STEP itérations sous la conditions CONDITION. Note 1 : si WATCHER est indiqué alors le point d'arrêt ne stoppera pas l'exécution mais mettra simplement à jour le compteur d'occurrence. Note 2 : si un point d'arrêt existe déjà avec les mêmes caractéristiques alors les valeurs de CONDITION, STEP, NAME et le mode (WATCHER) seront mises à jour. Note 3 : les paramètres de valeur, de masque et d'accès sont sans effet pour un point d'arrêt en exécution. Note 4 : la valeur par défaut du masque d'adresse est 0xFFFF (c'est-à-dire exactement l'adresse indiquée). Note 5: la valeur par défaut du masque de valeur est 0x00 (c'est-à-dire n'importe qu'elle valeur). * REMOVEBREAKPOINT TYPE/A,ADR=ADDRESS/N,ADRMASK=ADDRESSMASK/N,ACCESS, VAL=VALUE/N,VALMASK=VALUEMASK/N,ALL/S : retire un point d'arrêt du type TYPE (EXECUTE, MEMORY ou PORTS) pour un accès ACCESS (READ-ONLY, WRITE-ONLY ou READ-WRITE), à l'adresse ADDRESS, selon un masque ADDRESSMASK, pour une valeur VALUE avec un masque VALUEMASK. Si ALL est positionné alors tous les points d'arrêt du TYPE indiqué seront supprimés (les autres paramètres sont ignorés). * EXPORTBREAKPOINTS FILE/A : exporte les points d'arrêt configurables actuellement positionnés dans un script AREXX nommé FILE. Ce script pourra être lancé directement pour repositionner les points d'arrêt ultérieurement. Il prend comme paramètre optionnel le nom du port AREXX à utiliser. Par défaut, le même port que celui de l'instance d'ACE ayant réalisé l'export sera utilisé. * ADDSYMBOL NAME/A,ADR=ADDRESS/A/N: ajoute un symbole avec le nom NAME à l'adresse ADDRESS (plusieurs symboles peuvent être positionnés à la même adresse, la longueur maximal d'un symbole est de 255 lettres). * REMOVESYMBOL NAME,ALL/S: retire un symbole. Si ALL est positionnés alors tous les symboles seront supprimés. * FINDSYMBOL NAME/A: retourne l'adresse correspondant au symbole NAME. * EXPORTSYMBOLS FILE/A: exporte les symboles actuellement positionnés dans un code source contenant un EQU pour chaque symbole. * AF VAL=VALUE/N : si VALUE est présent, alors reprogramme le registre du Z80 avec. Sinon, renvoie la valeur courante du registre. * BC VAL=VALUE/N : voir AF. * DE VAL=VALUE/N : voir AF. * HL VAL=VALUE/N : voir AF. * SP VAL=VALUE/N : voir AF. * PC VAL=VALUE/N : voir AF. * AFx VAL=VALUE/N : représente un registre secondaire ; voir AF. * BCx VAL=VALUE/N : représente un registre secondaire ; voir AF. * DEx VAL=VALUE/N : représente un registre secondaire ; voir AF. * HLx VAL=VALUE/N : représente un registre secondaire ; voir AF. * IX VAL=VALUE/N : voir AF. * IY VAL=VALUE/N : voir AF. * I VAL=VALUE/N : représente un registre 8 bits ; voir AF. * GETUSERCOUNTER TYPE/A : renvoie la valeur du compteur utilisateur spécifié via TYPE. Ces compteurs correspondents à ceux disponibles dans la fenêtre Z80 et les valeurs possibles sont : . MICROSECONDS pour le compteur de microsecondes. . LINES pour le compteur de lignes. . FRAMES pour le compteur de trames. * RESETUSERCOUNTER TYPE/A : remet à zéro le compteur utilisateur spécifié via TYPE. Les valeurs possibles sont les mêmes que pour GETUSERCOUNTER. * GETLASTBREAKTYPE : retourne un statut sur le(s) dernier(s) type de point d'arrêt s'étant activé. Cette option est particulièrement pratique dans les scripts exécutés lors de l'activation des points d'arrêt puisqu'elle permet de savoir dans quelles conditions l'arrêt a eu lieu. Le statut est retourné sous la forme d'une chaine formatée comme suit : [Exécution][Port I/O][Mémoire][Interruption][HBL][VBL][Mauvaise HBL][Mauvaise VBL][Accès disque][Pas-à-pas][Position vidéo][Point d'arrêt de Maxam][Point d'arrêt de WinAPE] Chaque section entre crochet correspond à un type de point d'arrêt et contiendra "-" si ce type de point d'arrêt n'est pas impliqué dans le dernier arrêt. Si ce type de point d'arrêt était actif, alors la section correspondante contiendra son nom s'il était nommé ou une chaîne par défaut contenant le nom du type de point d'arrêt s'il n'était pas nommé ("Execution", "I/O port access", "Memory access", "Interrupt", "HBL", "VBL", "Bad HBL", "Bad VBL", "Disc access", "Step by step" or "On screen break"). * ONSCREENBREAK X/A/N,Y/A/N : positionne un point d'arrêt aux positions X et Y. Ces positions sont des positions de balayage vidéo qui représentent un emplacement fixe à l'écran et ne dépendent pas de la résolution graphique utilisée. Note : ce point d'arrêt correspond au point d'arrêt "Arrêt à la position cliquée à la souris" disponible dans le menu "Traçage" et un seul à la fois peut-être réglé. * RECORDSTART FILE: démarre l'enregistrement vidéo. La commande échouera si un enregistrement est déjà en cours ou si le fichier vidéo n'a pas pu être créé. Si FILE n'est pas spécifié alors la vidéo est automatiquement sauvée dans le répertoire par défaut et le nom de fichier utilisé est retourné. * RECORDSTOP: arrête l'enregistrement vidéo.
Contents | Index | < Browse | Browse >
Passerelle vers le disque dur ACE offre la possibilité de partager un répertoire de votre disque dur avec le CPC émulé via l'interface cassette. Grâce à cette fonctionnalité vous pouvez accéder directement en lecture et en écriture aux fichiers d'un répertoire de votre choix. Les chargements se font à pleine vitesse (du point de vue du CPC les fichiers sont chargés/sauvés instantanément), vous avez accès aux noms longs jusqu'à 16 caractères (le maximum que permet le système d'exploitation du CPC) ainsi qu'aux sous-répertoires. Configurer la passerelle : Une fois l'option "Disque dur via la cassette" activée dans le menu d'ACE vous aurez donc accès au répertoire partagé via l'interface cassette. Vous pouvez également utiliser le type d'outil TAPE2HD pour l'activer par défaut. Si une ROM disque est installée (ce qui est généralement le cas) vous devrez utiliser la commande "|TAPE" ("ùTAPE" en azerty) pour passer sur l'interface cassette (la commande "|DISC" permet de retourner sur l'interface disquette). Une fois ceci fait, toutes les commandes de manipulation des fichiers (CAT, LOAD, SAVE, OPENIN, OPENOUT, etc.) vous donneront accès au répertoire partagé de votre disque dur. Par défaut le tiroir "Share" d'ACE est utilisé mais vous pouvez le changer avec le type d'outil TAPE2HDPATH. Pour des raisons de sécurité il n'est pas possible d'accéder aux fichiers et répertoires en amont de celui-ci. De plus, seuls les fichiers compatibles avec la limite de 16 caractères seront visibles (les autres sont masqués mais un message vous avertit de leur présence). Utiliser la passerelle : La commande CAT qui permet de lister les fichiers présents peut parfois renvoyer un nombre très important d'entrées si votre répertoire est bien garni. Le défilement risque alors de vous empêcher de voir les premiers fichiers de la liste. Pour remédier à ce problème vous pouvez maintenir la touche [CONTROL] pendant le défilement d'un catalogue ; l'affichage sera alors mis en pause. Vous avez également la possibilité de presser [ESC] pour interrompre un catalogue à tout moment. En outre, le catalogue est affiché de manière détaillée afin d'identifier plus facilement vos fichiers. Voici un exemple de sortie : [HOME] Favorite Games/ [DIR] | Favorite Demos/ [DIR] | Menu.bas 11938 B$0170 0000 2E22| Music.bin 4055 B&6380 4000 0480| Music.wav 4MB*Data | Readme.txt 3456 B*ASCII | Et voici comment le lire : * La première ligne indique entre crochets le nom du répertoire en cours ; HOME désigne la racine du répertoire partagé. * Le mot-clef [DIR] désigne un répertoire. * La taille des fichiers est indiquée en octets (B), kilo-octets (KB), mega-octets (MB) et même giga-octets (GB) selon leur taille. * Le type des fichiers est réprésenté selon la norme classique sur CPC : $ pour un fichier BASIC, & pour un fichier binaire, % pour un fichier protégé, * pour un fichier non système (ASCII ou données brutes). Enfin, vous devez savoir que le système d'exploitation du CPC ne permet normalement pas la navigation dans les sous-répertoires ; il n'existe aucune commande pour cela. Pour pouvoir accéder aux répertoires via la passerelle vous devrez utiliser la commande "OPENIN" avec le nom du répertoire dans lequel rentrer suivi d'un "/" (il est de toute manière déjà affiché ainsi dans le catalogue). À noter que les noms de répertoire sont donc limités à 15 caractères et non 16. Pour remonter d'un niveau la commande est simplement OPENIN"/" et pour retourner au répertoire de base il vous faudra utiliser OPENIN":" (tout simplement comme vous le feriez sous AmigaShell avec CD). Lors de l'ouverture des fichiers en lecture, pour faciliter l'usage des programmes existants, la gestion des extensions par défaut est compatible avec l'AMSDOS. À savoir que si le fichier n'est pas trouvé et a un nom de moins de 8 caractères, une nouvelle tentative sera faite avec l'extension ".", puis avec ".bas" et enfin avec ".bin". Lors de l'ouverture des fichiers en écriture aucune extension automatique ne sera ajoutée (comme c'est le cas avec l'interface cassette d'origine). Détails techniques : D'un point de vue technique, cette passerelle est implémentée via une version modifiée de la ROM firmware et une instruction non documentée du Z80. Lorsque la passerelle n'est pas active, tout est normal et l'émulation n'est aucunement altérée. Une fois la passerelle activée, la ROM firmware est modifiée à la volée pour utiliser cette instruction illégale du Z80 dans son interface cassette. Dès lors, quand le Z80 rencontre cette instruction lors d'un accès à la ROM firmware, les fonctions spécfiques de la passerelle sont utilisées. Attention : la passerelle ne fonctionnera que si vous utilisez une des ROMs firmware officielles d'Amstrad (toutes les versions sont compatibles).
Contents | Index | < Browse | Browse >
Enregistrement vidéo ACE peut enregistrer une vidéo de ce qui est joué dans l'émulateur. À la fois le son et l'image sont enregistrés. Tous les fichiers d'enregistrement sont créés dans le tiroir "Records" (vous pouvez changer le tiroir par défaut à l'aide du type d'outil RECORDSPATH). Comme l'enregistrement vidéo demande beaucoup de puissance et une grosse bande passante, ACE ne va pas directement produire une vidéo utilisable. De ce fait, l'enregistrement vidéo se fait en trois phases. En outre, veuillez noter que même si l'enregistrement vidéo ralentit l'émulation sur votre machine au point que le son s'en trouve parfois haché, la vidéo produite restera correcte dans tous les cas. Phase 1 : Une fois l'enregistrement démarré, ACE va faire un enregistrement express du son et de l'image dans des fichiers utilisant un format privé (fichiers AREC). Veuillez noter que si l'enregistrement est long, plusieurs fichiers AREC seront générés afin d'éviter la limite en taille à 2 Go qui s'applique aux systèmes de fichiers 32 bits. De cette manière, vous pouvez bénéficier de la vitesse des partitions en SFS ou PFS3 qui sont bien plus rapides que la plupart des systèmes de fichiers 64 bits. Les fichiers additionnels sont nommés avec un suffixe numérique (<nom de fichier>.arec puis <nom de fichier>.arec.00001 suivi de <nom de fichier>.arec.00002 et ainsi de suite). Attention : si le mode d'affichage d'ACE est modifié durant cette phase (passage en plein écran, icônification, etc.) alors l'enregistrement sera immédiatement stoppé. Phase 2 : Vous devez utiliser l'outil arec2raw qui se trouve dans le tiroir "Tools" d'ACE pour convertir les fichiers AREC en fichiers bruts d'exploitables. Veuillez consulter la section scripts & outils pour davantage d'informations à propos de cet outil. Une fois arec2raw exécuté, vous trouverez trois fichiers : * un fichier brut audio, * un fichier brut vidéo, * un script d'encodage. Important : les fichiers bruts générés peuvent être volumineux et vous pourriez avoir à utiliser un système de fichiers 64 bits pour les stocker. IceFS est un système de fichiers natif, mais ext2/3 ou ntfs peuvent également être utilisés. Phase 3 : Lancez simplement le script généré lors de la phase 2 afin d'encoder les fichiers bruts en une vidéo avi mpeg4 standard. Vous pouvez bien sûr préalablement éditer le script afin modifier les paramètres d'encodage selon vos besoins. À noter que vous devrez avoir installé l'outil ffmpeg pour pouvoir exploirer ce script.
Contents | Index | < Browse | Browse >
Greffons d'extension ACE est extensible à l'aide de bibliothèques partagées qui sont chargées et initialisées au démarrage de l'émulateur. Ces bibliothèques sont nommées des « ACEpansions » et doivent être installées dans le tiroir "Plugins" d'ACE (ce tiroir par défault peut être changé à l'aide du type d'outil PLUGINSPATH). Chaque greffon ainsi chargé rajoutera une entrée dans le menu "Extensions" de l'émulateur afin de pouvoir l'activer ou la désactiver. Certains greffons disposent également d'une fenêtre de préférences ainsi que d'un guide qui se verront ajoutés aux menus "Extensions" et "Aide" d'ACE. Les greffons sont configurables à l'aide de types d'outils présents dans leur icône ; veuillez vous référer à la documentation de chaque greffon pour savoir comment les positionner. Par défaut ACE est fourni avec cinq greffons d'extension : Manettes de jeu (joysticks.acepansion) émule les manettes de jeu du CPC à partir de la lowlevel.library Amiga. Digiblaster (digiblaster.acepansion) émule la Digiblaster et la Soundplayer. Imprimante (printer.acepansion) permet de rediriger la sortie imprimante du CPC vers un fichier. Souris Kempston (kempstonmouse.acepansion) émule... eh bien... la souris Kempston. Souris AMX (amxmouse.acepansion) émule... vous avez deviné... la souris AMX (l'émulation est assez approximative, mais la souris AMX l'est aussi !). Si vous désirez développer vos propres greffons d'extension, le code source de tous ces greffons est fournis en example dans le tiroir "Bonus".