CPC Rulez https://cpcrulez.fr/forum/ |
|
Modification/Hack d'un jeu pour avoir des couleurs CPC+ https://cpcrulez.fr/forum/viewtopic.php?f=6&t=5616 |
Page 1 sur 1 |
Auteur : | hERMOL [ 29 Oct 2015, 13:35 ] |
Sujet du message : | Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Bon je commence, je vais prendre pour exemple Solomon's Key : la version commercial avec la protection Alkatraz a charger sous winape (c'est là l'instrument essentiel à nos travaux ) Dans 1er temps lancer le jeu par un RUN"DISK 1) « Breaker » le jeu une fois dans le menu (touche F8) , équivalent a la touche rouge de la multiface 2) Avant de chercher quoi que ce soit , vérifier son emplacement en RAM : Bank C0 / Mode Write position adresse 0000 de la RAM 3) Rechercher la routine « SETPAL » , ici c'est de l'assembleur , et vu la qualité du code de Chris Wood . Il n'as sûrement pas utiliser la vecteur system (routine BIOS/AMSDOS de l'AMSTRAD) et a directement initialisé la palette avec par une routine hard, Utilise la fonction recherche du débugger WINAPE (Ctrl+F) il est possible de faire des recherches avec des jokers , ont va pas s'en priver … après plusieurs résultats ont tombe la dessus : Je vais résonner en novice en assembleur z80 : On peut voir à l'adresse mémoire #22A8 la commande ou opcode : "LD BC,#7F8C" qui est typique pour une initialisation du mode écran (mode 0 =#8C / adressage gate array=#7F) puis en #22AD le code init/pointe un registre avec une adresse non loin de la routine ... OK #22B2 ld d,#10 --> un registre/variable qui s'init a #10 (en décimal 16 , comme le nbr d'encres de la palette mode 0 Amstrad ) #22B4 un out (c),c --> la commande qui donne le numéro de l'encre avant son initialisation (équivalement basic INK x,?) #22B7 prochain emplacement mémoire (valeurs des encres) #22BA un out (c),a / apres ld a,(hl) --> ce qui signifie je pose ma valeur "couleur" qui est a l'emplacement mémoire adresse HL sur le "port encre du gate array" ... (équivalement basic INK ?,x) #22BC prochain numéro d'encre #22BD -1 sur la conteur "D" qui est a #10 en hexa ou 16 en décimal #22BE D=0 , non alors je vais en #22B4 [Fin de la 1ere partie] |
Auteur : | AsT [ 29 Oct 2015, 14:01 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Bonne introduction ! Elle aurait mérité son propre topic à mon humble avis. (Plus facile à trouver pour ceux qui cherchent) |
Auteur : | hERMOL [ 29 Oct 2015, 14:06 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
beh on y est justement |
Auteur : | AsT [ 29 Oct 2015, 14:42 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Bonne nouvelle. C'est plus "classe" maintenant. Je pense qu'il serait bon dans le futur de donner des conseils pour changer la configuration de touches pourraves definies au départ vers quelquechose de plus classique, voire vers une configuration manette de jeu. Ca pourrait interresser également bon nombre de "modeurs" (on dit comme cela?) Cette rubrique pourrait aussi glisser sur la redefinition des tableaux d'un jeu... Enfin, il y a tellement de choses à explorer. |
Auteur : | MUSICMAN3512 [ 01 Nov 2015, 16:33 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Super ! Merci pour cette première partie. Pressé de voir les autres :d:d:d |
Auteur : | MUSICMAN3512 [ 02 Déc 2015, 19:23 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Bientôt la suite hERMOL ? |
Auteur : | MUSICMAN3512 [ 17 Mars 2016, 01:47 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Puis-je en remettre une couche ? J'ai du temps libre et j'aimerai bien me lancer et contribuer a des version .cpr a utiliser avec C4CPC |
Auteur : | MUSICMAN3512 [ 28 Août 2017, 17:33 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Depuis la date de ce post, j'ai cumulé sur mon HDD une ENORME quantité de mockup, prêts pour l'aide à la modification en couleurs CPC+. Je croise juste les doigts que hERMOL veuille bien continuer et finaliser son tuto en espérant que ca ne reste pas à l'etat de pauvres png... |
Auteur : | MUSICMAN3512 [ 01 Sep 2017, 21:49 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Bon, OK.... J'abandonne J'insiste plus Je suis juste déçu d'avoir eu zéro réponse depuis presque deux ans. Et franchement j'aurais préféré un "tu me gonfles, j'ai pas le temps" que ce silence. Vraiment dommage........ |
Auteur : | marcel [ 02 Sep 2017, 08:32 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
MUSICMAN3512 a écrit : Bon, OK.... J'abandonne J'insiste plus Je suis juste déçu d'avoir eu zéro réponse depuis presque deux ans. Et franchement j'aurais préféré un "tu me gonfles, j'ai pas le temps" que ce silence. Vraiment dommage........ Hello Difficile d'espérer des réponses pendant les grandes vacances, même si, je te l'accorde, tu attends depuis deux ans Ne laisse pas tomber tes mockups Si tu souhaites motiver un programmeur à continuer le tuto d'Hermol, peut-être que tu pourrais toi aussi poster quelques chose non? Une capture de ton mockup (comparaison avant/après) ++ |
Auteur : | hERMOL [ 03 Sep 2017, 15:33 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
Sujet : Modification/Hack d'un jeu pour avoir des couleurs CPC+ MUSICMAN3512 a écrit : Bon, OK.... J'abandonne J'insiste plus Je suis juste déçu d'avoir eu zéro réponse depuis presque deux ans. Et franchement j'aurais préféré un "tu me gonfles, j'ai pas le temps" que ce silence. Vraiment dommage........ Sorry je l'ai zappé ce topic , je m'y mets cette aprem |
Auteur : | hERMOL [ 03 Sep 2017, 16:55 ] |
Sujet du message : | Re: Modification/Hack d'un jeu pour avoir des couleurs CPC+ |
milles excuse pour l'attente ... j'ai zappé ce topic Détournement de la routine #22A8 : J'ai choisis l'emplacement #0040 pour ma routine nouvelle palette. y'a un peu de place (ça ne me gêne pas l'ASIC qui ce trouve de &4000 -> &7FFF une fois activé) J'utilise l'assembleur WINAPE pour le patch mémoire et ca marche plutot pas mal , 1ere étape détournement "HOOK" vers mon code. Rien de bien sorcier: Code : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; PATCH MEMOIRE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org #22AD call &0040 ; routine palette CPC+ ds #22C0-$ ; clean code pourquoi je commence à patcher en #22AD et non en #22A8 ? je laisse le "ld bc,#7fc8:out (c),c" qui est l'équivalent d'un "mode 0" en assembleur détourne le code vers mon patch (call #0040) maintenant j'assemble ma routine unlock asic / setpal en &0040 unlock de l'asic... Code : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org #0040 ASIC_UNLOCK DI ld bc, #BC00 ld hl, ASICSEQ ld a, 19 ld c, (hl) inc hl out (c), c dec a jr nz,$-5 puis déplacements des données palette vers l'ASIC Code : FIXPAL: ld bc, #7FB8:out (c),c ; active écriture ASIC ld de,#6400 ld hl,NEWPAL ld bc,#20 ldir ld bc, #7FA0:out (c),c ; désactive l'écriture ASIC ei ret ; retour prog jeu Ici les datas de la palette , 2 octets par couleur (word en assembleur) Code : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NEWPAL dw #df0 dw #fff dw #7b0 dw #df0 dw #900 dw #d00 dw #777 dw #ccc dw #8d6 dw #00d dw #af0 dw #009 dw #999 dw #590 dw #0d0 dw #000 db #000 DATAS seq unlock de l'asic, la fameuse séquence secrete .... Code : ASICSEQ db #01, #00, #FF, #77, #B3, #51, #A8, #D4 db #62, #39, #9C, #46, #2B, #15, #8A, #CD db #EE, #FF, #00 Pour assembler tout ca : pose un breakpoint sur le débuggeur winape à l'offset #22AD (adresse mémoire) puis F9 sous la fenêtre assembleur. Une fois la mémoire du CPC patcher , le plus simple pour toi est de sauvegarder ces modifications en snapshot. |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |