Banner
Views: 875,839,705
Time:
23 users online:  1UPdudes, AppleBoy54321,  bebn legg, blgmadresh0000, CannedPotato,  E-man38, Frank__, Golden Yoshi, Green Jerry, HelloSammu, Holy Shinx,  idol, Igno, janklorde, josec06473, Koopster, l337f00l, Mega, Mirann, singlepat, Sping bot, tomas12pr, zLukaasPvPz - Guests: 87 - Bots: 141 Users: 48,873 (2,513 active)
Latest: tomas12pr
Tip: Always check for updated files in the database by sorting them by "Date" in the various sections.Not logged in.
[ASM] Pourquoi qu'il marche pas ce morceau de code?
Forum Index - Sunken Ghost Ship - Forum Graveyard - Français - [ASM] Pourquoi qu'il marche pas ce morceau de code?
Pages: « 1 » Link
Quote
LDA $1422; Voir ce qu'il y a dans l'adresse 1422 correspondant au compteur des pièces Yoshi
CMP #$01; Si il y a une pièce de récoltée
BEQ PlusOne; Si le joueur possède une pièce --> +1

LDA $1422; Voir ce qu'il y a dans l'adresse 1422 correspondant au compteur des pièces Yoshi
CMP #$02; Si il y a deux pièces
BEQ PlusTwo; Si le joueur possède deux pièces --> +2

LDA $1422; Voir ce qu'il y a dans l'adresse 1422 correspondant au compteur des pièces Yoshi
CMP #$03; Si il y a trois pièces
BEQ PlusFive; Si le joueur possède trois pièces --> +5

LDA $1422; Voir ce qu'il y a dans l'adresse 1422 correspondant au compteur des pièces Yoshi
CMP #$04; Si il y a quatre pièces
BEQ PlusTen; Si quatre pièces --> +10

LDA $1422; Voir ce qu'il y a dans l'adresse 1422 correspondant au compteur des pièces Yoshi
CMP #$05; Si il y a cinq pièces
BEQ PlusTwentyFive; Si toutes les pièces --> +25

RTL;


PlusOne:

LDA $0DBF;
CLC;
ADC #1;
STA $0DBF;

PlusTwo:

LDA $0DBF;
CLC;
ADC #2;
STA $0DBF;

PlusFive:

LDA $0DBF;
CLC;
ADC #5;
STA $0DBF;

PlusTen:

LDA $0DBF;
CLC;
ADC #10;
STA $0DBF;

PlusTwentyFive:

LDA $0DBF;
CLC;
ADC #25;
STA $0DBF;



Bonsoir à toutes et à tous.

Voici mon problème :

Je veux coder un patch en asm permettant de gagner un certain nombre de pièces à chaque fois que l'on gagne une pièce Yoshi. Le principe est simple :

Une pièce yoshi = +1 pièce.
Deux pièces = +2 pièces.
Trois pièces = +5 pièces.
Quatre pièces = +10 pièces.
Cinq pièces = +25 pièces.

Je compile mon code avec xkas en ligne de commandes, voyant que le compilateur ne gueule pas. Je me dis : "Okay, c'est bon ça doit marcher.", mais en testant sur le jeu, rien ne change. J'ai 5 pièces au lieu d'en avoir 48 (43 bonus + 5 pièces de yoshis qui comptent pour 5 pièces.).

En vérité, mon compteur de pièces est à 5 alors qu'il devrait être à plus ou moins 48.

Quelqu'un sait-il ce qui pêche sur cette portion de code?

Merci pour l'attention que vous donnerez à ce topic. :)
Essaies d'ajouter ça à la section globale d'UberASM:

Code
!FreeRAM = $58

PHX
LDX $1422
CPX !FreeRAM
BEQ Return
STX !FreeRAM
LDA $13CC
CLC
ADC AddedAmount,x
STA $13CC
Return:
PLX
RTL

AddedAmount: db $00,$00,$01,$04,$09,$18


Ton code comportes plusieurs problèmes. Si tu as une pièce, tu exécutes le code PlusOne, mais puisqu'il n'y a pas de RTL, tu exécutes aussi tous les autres codes en-dessous, ainsi que tout ce qu'il y a après cela, sans revenir, ce qui planterais le jeu.

De plus, ton code ajouterais ce montant chaque frame de jeu. Mon code fais en sorte qu'il ne soit ajouté que chaque fois que le compteur augmentes.

Il ne faut pas utiliser $0DBF pour ajouter des pièces. Si tu excèdes 100 pièces, le jeu ne s'occuperas pas d'ajouter une vie et de repartir à zéro. Il faut ajouter à $13CC, une adresse qui s'occupe spécifiquement d'ajouter des pièces au compteur principal sans souci.

Mais la raison pourquoi ton compteur est de 5 plutôt que 48 est que ton code n'est probablement jamais exécuté. Si tu te contentes de compiler le code dans une section inutilisée de la ROM, il ne sera jamais exécuté, tout comme une route qui serait construite au beau milieu d'un champs sans être reliée à un autre chemin. C'est pourquoi il faut faire un "hijack", ce qui reviendrait à modifier une route pour qu'elle mène à et revienne de ta route. UberASM s'occupe de tout ça.

En tout cas, essaie UberASM avec mon code copié dans le fichier global.asm et redonnes m'en des nouvelles, car je ne peux pas tester pour le moment.

N'oublies pas de faire une copie de secours au cas où quelque chose ne se passerait pas comme prévu! :P

EDIT: Le mieux aurait été de modifier directement le code des pièces Yoshi, mais je suis trop paresseux pour m'en occuper >_<

J'ai modifié le code pour prendre en compte le fait que les pièces Yoshi ajoutent déjà une pièce.
Originally posted by Sakuya Izayoi
Essaies d'ajouter ça à la section globale d'UberASM:

Code
!FreeRAM = $58

PHX
LDX $1422
CPX !FreeRAM
BEQ Return
STX !FreeRAM
LDA $13CC
CLC
ADC AddedAmount,x
STA $13CC
Return:
PLX
RTL

AddedAmount: db $00,$00,$01,$04,$09,$18


Ton code comportes plusieurs problèmes. Si tu as une pièce, tu exécutes le code PlusOne, mais puisqu'il n'y a pas de RTL, tu exécutes aussi tous les autres codes en-dessous, ainsi que tout ce qu'il y a après cela, sans revenir, ce qui planterais le jeu.

De plus, ton code ajouterais ce montant chaque frame de jeu. Mon code fais en sorte qu'il ne soit ajouté que chaque fois que le compteur augmentes.

Il ne faut pas utiliser $0DBF pour ajouter des pièces. Si tu excèdes 100 pièces, le jeu ne s'occuperas pas d'ajouter une vie et de repartir à zéro. Il faut ajouter à $13CC, une adresse qui s'occupe spécifiquement d'ajouter des pièces au compteur principal sans souci.

Mais la raison pourquoi ton compteur est de 5 plutôt que 48 est que ton code n'est probablement jamais exécuté. Si tu te contentes de compiler le code dans une section inutilisée de la ROM, il ne sera jamais exécuté, tout comme une route qui serait construite au beau milieu d'un champs sans être reliée à un autre chemin. C'est pourquoi il faut faire un "hijack", ce qui reviendrait à modifier une route pour qu'elle mène à et revienne de ta route. UberASM s'occupe de tout ça.

En tout cas, essaie UberASM avec mon code copié dans le fichier global.asm et redonnes m'en des nouvelles, car je ne peux pas tester pour le moment.

N'oublies pas de faire une copie de secours au cas où quelque chose ne se passerait pas comme prévu! :P

EDIT: Le mieux aurait été de modifier directement le code des pièces Yoshi, mais je suis trop paresseux pour m'en occuper >_<

J'ai modifié le code pour prendre en compte le fait que les pièces Yoshi ajoutent déjà une pièce.


Navré de ne pas l'avoir précisé plus tôt, mais je pense que cela s'est vu : Je suis un débutant absolu en ASM. xD

J'ai mis en gras ce que je n'avais pas compris afin d'avancer au mieux et au plus vite.

Et le pire dans tout ça, c'est que je ne sais pas utiliser UberASM et je ne trouve aucun tutoriel sur le net, même pas en anglais ni en allemand. D:

Si quelqu'un arrive à expliquer comment s'en servir dans les grandes lignes, ce serait tellement adorable de sa part. D:

En tous cas Sakura, j'ai apporté les modifications à mon code personnel et à la section globale.
Bon bah moi c'est pas la peine de me demander moi je suis une quiche totale en ASM ^^'
J'espère les autres t'aider Titi-kum #tb{:)}
Layout by Koopster
Tu n'as pas à faire un hijack toi-même; Tous ce que tu dois faire est de copier mon code dans le fichier global_code.asm de UberASM, puis compiler UberASM.

Pour utiliser UberASM:

1. Télécharges-le ici.

2. Extrais le contenu du .zip quelque part.

3. Dans le dossier Code, il y a ce fichier, global_code.asm, copies mon code dedans, entre les lignes "global_code:" et "RTS". Aussi, enlève mon RTL de la fin de mon code.

3. N'utilises pas xkas, utilises Asar. Puis, compile SEULEMENT le fichier asar_patch.asm. Pour cela, il faut que Asar.exe, le contenu d'UberASM et ta ROM soient dans le même dossier. Puis, double-clique sur Asar.exe, écris asar_patch.asm, fais Entrer, écris le nom de ta ROM, fais Entrer.

Voilà, j'espère que cela t'aideras. Je ne serai pas disponible pour quelques jours.
Pages: « 1 » Link
Forum Index - Sunken Ghost Ship - Forum Graveyard - Français - [ASM] Pourquoi qu'il marche pas ce morceau de code?

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks