Sgdk - Sega Megadrive / Genesis Development Kit
+31
JoanCZ
vincent2105
Fax
Orion_
chrilith
Templeton
F.L
Tryphon
uran
Hpman
fourchette
65c02
drfloyd
chiss
Spirale
maldoror68
Top l'âne
troudki
tetsuro
emultion
Ricco59_59
dub
ganon551
TotOOntHeMooN
philip
ichigobankai
vingazole
bfg
Stef
r_songo
pckid
35 participants
Page 5 sur 34
Page 5 sur 34 • 1, 2, 3, 4, 5, 6 ... 19 ... 34
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'est surtout pratique pour les calculs de score dans les jeux, bcp plus rapide que les méthodes software .
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui c'est sur mais franchement c'est la *seule* utilité de cette instruction pour un jeu Et c'est pas le calcul du score qui va te mettre dans la mouise niveau cycle machine :p
Pour un micro ordinateur l'instruction avait au départ une réelle utilité mais dés que les CPU sont devenus un peu plus puissants c'était terminé.
Pour un micro ordinateur l'instruction avait au départ une réelle utilité mais dés que les CPU sont devenus un peu plus puissants c'était terminé.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef, c'est combien la taille max de la rom géré par sgdk ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Tu peux compiler jusqu'à 10 Mo sans bank mais ça ne fonctionnera que sur le Mega Everdrive et sans le MegaCD ni le 32X. Sinon c'est 4Mo sans banking (avec banking tu n'as pas vraiment de limite).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oula, il va falloir que je revois les musique alors. Car sinon ca va être limite.
J'en suis déja à 1.3Mo avec juste la musique pour le monde 1.
J'en suis déja à 1.3Mo avec juste la musique pour le monde 1.
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Effectivement à part ce cas là, j'ai pas encore trouvé une utilité pratique, mais pour le coup ça simplifie grandement les calculs car tu n'as pas à faire de conversion BCD à la mano .Stef a écrit:Oui c'est sur mais franchement c'est la *seule* utilité de cette instruction pour un jeu Et c'est pas le calcul du score qui va te mettre dans la mouise niveau cycle machine :p
Pour un micro ordinateur l'instruction avait au départ une réelle utilité mais dés que les CPU sont devenus un peu plus puissants c'était terminé.
- Code:
sed ; // Active le mode décimal
lda <val_temp1
clc
adc _score ; // Unites & dixaines
sta _score
lda <val_temp1 + 1
adc _score + 1 ; // Centaine & milliers
sta _score + 1
cla
adc _score + 2 ; // 10 aine de millier & 100 aine de millier
sta _score + 2
cla
adc _score + 3 ; // million & 10 aine de millions
sta _score + 3
cld
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
r_songo a écrit:Oula, il va falloir que je revois les musique alors. Car sinon ca va être limite.
J'en suis déja à 1.3Mo avec juste la musique pour le monde 1.
Tu passes par le driver ADPCM ?
Sinon oui la musique full PCM c'est la cata pour ça...
Tu peux essayer de découper ta musique en plusieurs parties :
- intro
- main (avec loop éventuellement)
- ending
de cette manière tu peux réduire pas mal la taille de la musique par contre c'est pas forcément évident de bien découper la musique (surtout qu'il faut aligner la taille des samples sur 256).
Dernière édition par Stef le Jeu 4 Déc 2014 - 12:36, édité 1 fois
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef a écrit:Tu passes par le driver ADPCM ?
Sinon oui la musique full PCM c'est la cata pour ça...
Tu peux essayer de découper ta musique en plusieurs :
- intro
- main (avec loop éventuellement)
- ending
de cette manière tu peux réduire pas mal la taille de la musique par contre c'est pas forcément évident de bien découper la musique (surtout qu'il faut aligner la taille des samples sur 256).
Oui je passe pas le driver ADCPM.
Pour la musique du monde 1, je pense pouvoir gagner 200 Ko sur la taille de la ROM. J'avais déjà fait un test de découpe.
J'ai déjà la musique dans le jeu, alors que j'ai pas encore finit de porter mon moteur physique. C'est déprimant lol.
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Haha d'habitude c'est plutot l'inverse en effet, le gameplay / moteur avant et la musique en dernier
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui, je sais. Mais bon c'est rare avant de commencer un jeu d'avoir déjà les sons et graphismes.
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Un volontaire pour transformer ce code, en asm 68000 pour SGDK ?TOUKO a écrit:Effectivement à part ce cas là, j'ai pas encore trouvé une utilité pratique, mais pour le coup ça simplifie grandement les calculs car tu n'as pas à faire de conversion BCD à la mano .Stef a écrit:Oui c'est sur mais franchement c'est la *seule* utilité de cette instruction pour un jeu Et c'est pas le calcul du score qui va te mettre dans la mouise niveau cycle machine :p
Pour un micro ordinateur l'instruction avait au départ une réelle utilité mais dés que les CPU sont devenus un peu plus puissants c'était terminé.
- Code:
sed ; // Active le mode décimal
lda <val_temp1
clc
adc _score ; // Unites & dixaines
sta _score
lda <val_temp1 + 1
adc _score + 1 ; // Centaine & milliers
sta _score + 1
cla
adc _score + 2 ; // 10 aine de millier & 100 aine de millier
sta _score + 2
cla
adc _score + 3 ; // million & 10 aine de millions
sta _score + 3
cld
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Pour résumer ça ajoute un chiffre 0 -> 9999 ( val_temp1 (16 bits) mais on résonne en décimal ) au score, ça prend ici 60 cycles car c'est une fonction générique,mais ça peut facilement être plus rapide .
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
philip a écrit:Un volontaire pour transformer ce code, en asm 68000 pour SGDK ?TOUKO a écrit:Effectivement à part ce cas là, j'ai pas encore trouvé une utilité pratique, mais pour le coup ça simplifie grandement les calculs car tu n'as pas à faire de conversion BCD à la mano .Stef a écrit:Oui c'est sur mais franchement c'est la *seule* utilité de cette instruction pour un jeu Et c'est pas le calcul du score qui va te mettre dans la mouise niveau cycle machine :p
Pour un micro ordinateur l'instruction avait au départ une réelle utilité mais dés que les CPU sont devenus un peu plus puissants c'était terminé.
- Code:
sed ; // Active le mode décimal
lda <val_temp1
clc
adc _score ; // Unites & dixaines
sta _score
lda <val_temp1 + 1
adc _score + 1 ; // Centaine & milliers
sta _score + 1
cla
adc _score + 2 ; // 10 aine de millier & 100 aine de millier
sta _score + 2
cla
adc _score + 3 ; // million & 10 aine de millions
sta _score + 3
cld
Tu en as réellement besoin ? ou pour le fun de la comparaison ?
Car il existe déjà une méthode pour transformer un nombre en chaine de caractère dans SGDK (c'est un peu la même logique) : intToStr(..) ou uintToStr(..)
J'ai utilisé la méthode bourrin (division et modulo par 10) mais je pourrais la réécrire avec un peu d'asm pour effectivement tirer partie du BCD.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Je rafraîchi le score une fois sur cinq car elle semble gourmande:
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
Re: Sgdk - Sega Megadrive / Genesis Development Kit
philip a écrit:Je rafraîchi le score une fois sur cinq car elle semble gourmande:
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
C'est vrai qu'il y a 7 divisions mais si tu utilises des valeurs 16 bits ça devrait pas être la mort.
La modif de la VRAM doit être limite plus gourmand je pense.
Un truc important, fait la mise à jour du score à la fin de ton code vblank (pour ne pas bouffer inutilement sur la bande passante VRAM).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Bien sur, car il faut ensuite traduire le score en tile pour chaque chiffre ..La modif de la VRAM doit être limite plus gourmand je pense.
Ca peut aussi servir pour un timerEffectivement à part ce cas là, j'ai pas encore trouvé une utilité pratique,
Version optimisée 6280 (34 cycles)
- Code:
sed
clc
ldx #LOW(score)
set
adc <val_temp1 ; // Unites & dixaines dans <score
inx
set
adc <val_temp1 + 1 ; // Centaine & milliers dans <score+1
inx
set
adc #00 ; // 10 aine de millier & 100 aine de millier dans <score+3
inx
set
adc #00 ; // million & 10 aine de millions dans <score+3
cld
C'est pour ça que vous devriez essayer l'ASM avec sgdk le plus vite possible
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
J'ai été écoeuré à vie du BCD à cause du 8088 : tu as 4 opcodes pour le BCD non compacté selon l'opération que tu viens de faire (AAA - addition, AAS - soustraction, AAM - multiplication, AAD - division) et 2 autres pour le BCD compacté (DAA et DAS, respectivement pour l'addition et la soustraction).
source : http://fr.wikipedia.org/wiki/Jeu_d'instructions_x86#Instructions_originales_des_8086.2F8088 (je n'ai pas ressorti ça de mémoire, je vous rassure^^).
J'imagine que ça devait servir pour des applications de type "compta", comme l'infâme langage COBOL
source : http://fr.wikipedia.org/wiki/Jeu_d'instructions_x86#Instructions_originales_des_8086.2F8088 (je n'ai pas ressorti ça de mémoire, je vous rassure^^).
J'imagine que ça devait servir pour des applications de type "compta", comme l'infâme langage COBOL
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Déjà rien le nom BCD compacté te donne mal à la tête
Il me semble que les 80XXX d'intel, n'était pas réputés pour être sympas à programmer en ASM ..
Il me semble que les 80XXX d'intel, n'était pas réputés pour être sympas à programmer en ASM ..
Dernière édition par TOUKO le Jeu 4 Déc 2014 - 19:33, édité 1 fois
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
L'ASM du 8086/8088 lui-même est assez "intuitif" (modes d'adressage variés et relative orthogonalité du jeu d'instruction, instructions pour la multiplication et la division, opérations "par blocs", opcode pour accéder à une LUT, etc...).
Ce qui était terrible c'était les accès à la mémoire : les concepteurs avaient imaginé des registres de segments pour "résoudre" le problème des adresses de plus de 16 bits (quand tu faisais un JUMP c'était associé au registre de segment de code - CS, quand tu faisais un PUSH ou un POP ça référençait le registre de segment de pile - SS, etc...).
Là où le truc était pervers, c'est que l'adresse effective était calculée par REGISTRE_DE_SEGMENT * 16 + OFFSET (avec REGISTRE_DE_SEGMENT et OFFSET codés sur 16 bits), limitant d'une part l'étendue des adresses à 1 Mo (alors qu'il semblerait plus logique de faire REGISTRE_DE_SEGMENT * 65536 + OFFSET et d'accéder du coup à un plus grand nombre d'adresses différentes), mais surtout que chaque adresse réelle pouvait être représentée par différentes combinaisons SEGMENT/OFFSET, je ne te raconte pas la difficulté pour le reverse engineering
Ce qui était terrible c'était les accès à la mémoire : les concepteurs avaient imaginé des registres de segments pour "résoudre" le problème des adresses de plus de 16 bits (quand tu faisais un JUMP c'était associé au registre de segment de code - CS, quand tu faisais un PUSH ou un POP ça référençait le registre de segment de pile - SS, etc...).
Là où le truc était pervers, c'est que l'adresse effective était calculée par REGISTRE_DE_SEGMENT * 16 + OFFSET (avec REGISTRE_DE_SEGMENT et OFFSET codés sur 16 bits), limitant d'une part l'étendue des adresses à 1 Mo (alors qu'il semblerait plus logique de faire REGISTRE_DE_SEGMENT * 65536 + OFFSET et d'accéder du coup à un plus grand nombre d'adresses différentes), mais surtout que chaque adresse réelle pouvait être représentée par différentes combinaisons SEGMENT/OFFSET, je ne te raconte pas la difficulté pour le reverse engineering
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Je m'en doute
Finalement avec nos CPU, on a pas été si mal lotie après tout
Finalement avec nos CPU, on a pas été si mal lotie après tout
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'est qu'on les aime, nos mille pa-pattes
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: Sgdk - Sega Megadrive / Genesis Development Kit
où se situe la fin du code vblank ? Juste avant VDP_waitVSync(); (ou il faut une autre commande) ?Stef a écrit:philip a écrit:Je rafraîchi le score une fois sur cinq car elle semble gourmande:
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
C'est vrai qu'il y a 7 divisions mais si tu utilises des valeurs 16 bits ça devrait pas être la mort.
La modif de la VRAM doit être limite plus gourmand je pense.
Un truc important, fait la mise à jour du score à la fin de ton code vblank (pour ne pas bouffer inutilement sur la bande passante VRAM).
Re: Sgdk - Sega Megadrive / Genesis Development Kit
D'où l'intérêt du mode BCD, en plus d'être bcp plus rapide, le code en est simplifié ..philip a écrit:Je rafraîchi le score une fois sur cinq car elle semble gourmande:
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
J'ai été confronté au même soucis que toi la première foi, CAD un code complexe à cause de toutes les divisions, et assez lent .
Pk tu n'essais pas de le faire en ASM 68k avec sgdk pour tester ???
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
je n'ai ni le temps, ni le talent malheureusement. Déjà je pense qu'il faudrait commencer par une simple incrementation d'une variable, c'est ce que j'avais réussis à faire sur la console Lynx, c'était en 2010 si ma mémoire ne me joue pas des tours...TOUKO a écrit:D'où l'intérêt du mode BCD, en plus d'être bcp plus rapide, le code en est simplifié ..philip a écrit:Je rafraîchi le score une fois sur cinq car elle semble gourmande:
unite = score ℅ 10
dizaine = score / 10 ℅ 10
centaine = score / 100 % 10
millier = score / 1000 ℅ 10
Après quoi je fais la modification en vram pour ces quatre éléments, chacune de 0 à 9, et j'obtiens ainsi un sprite d'une taille de 32x8 pixels indiquant le score.
J'ai été confronté au même soucis que toi la première foi, CAD un code complexe à cause de toutes les divisions, et assez lent .
Pk tu n'essais pas de le faire en ASM 68k avec sgdk pour tester ???
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui pk pas,ou tu peux faire une petite fonction très simple en C, et essayer de la traduire en ASM ..Déjà je pense qu'il faudrait commencer par une simple incrementation d'une variable, c'est ce que j'avais réussis à faire sur la console Lynx, c'était en 2010 si ma mémoire ne me joue pas des tours...
Bon après le temps n'est pas extensible hélas
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
En parcourant ce blog, j'apprend que le 68010 est 20% plus rapide qu'une 68000 à même fréquence ! Et donc à seulement 10MHz, les jeux qui le tolère sont très fluide :
http://www.gamekult.com/blog/totoonthemoon/?blogcategoryid=9406
Une question technique me vient alors à l'esprit : est ce que SGDK est compatible avec le 68010 ?
Up:
Et une question sur l'integration asm dans SGDK, je déclare la variable kiwi après int main( ):
Puis plus loin dans la boucle principale, je teste une addition:
asm(
" add.w #2,kiwi"
);
Il n'y a pas de message d'erreur, donc je suppose que cela fonctionne. Mais si je veux récupérer la valeur de kiwi dans testasm1 en faisant testasm1 = kiwi; alors il y a un message d'erreur ('kiwi' undeclared (first use in this function).
http://www.gamekult.com/blog/totoonthemoon/?blogcategoryid=9406
Une question technique me vient alors à l'esprit : est ce que SGDK est compatible avec le 68010 ?
Up:
Et une question sur l'integration asm dans SGDK, je déclare la variable kiwi après int main( ):
u16 testasm1; // variable asm : asm( "kiwi: dc.w 4" ); |
asm(
" add.w #2,kiwi"
);
Il n'y a pas de message d'erreur, donc je suppose que cela fonctionne. Mais si je veux récupérer la valeur de kiwi dans testasm1 en faisant testasm1 = kiwi; alors il y a un message d'erreur ('kiwi' undeclared (first use in this function).
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Tiens bizarre j'ai loupé les derniers messages...
Tu as surement une méthode sur l'interruption vertical pour mettre à jour tes données dans le VDP ?
Si c'est le la fin du blank c'est la fin de cette méthode (en gros).
Si tu n'as pas de méthode attachée à l'interruption verticale, alors la fin du blank je dirais que c'est avant ton VDP_waitVsync().
Sinon pour ta variable en assembleur, je pense que déclarer une variable dans le scope asm déjà c'est pas super ^^ (à mon avis elle reste locale).Tu devrais plutot la déclarer dans le scope C qui englobe et ensuite y accéder en asm.
Et aussi mixer du C et de l'asm, même si c'est supporté il vaut mieux en limiter l'utilisation car ça gène le compilateur C pour les optimisations.
Après si c'est vraiment pour mettre 3/4 instructions assembleur ok, sinon essai plutot de mettre ton code assembleur dans un fichier .s à part.
Tu peux regarder dans SGDK comment c'est fait (tu as plusieurs fichiers .s dans le répertoire src).
Sinon juste pour montrer qu'en C on peut faire déjà de belles choses, y'a djcc qui a releasé tout ces projet en cours et le dernier (un shoot horizontal) est vraiment pas mal fichu quand tu penses que c'est codé 100% en C :
http://gendev.spritesmind.net/forum/viewtopic.php?p=25264
où se situe la fin du code vblank ? Juste avant VDP_waitVSync(); (ou il faut une autre commande) ?
Tu as surement une méthode sur l'interruption vertical pour mettre à jour tes données dans le VDP ?
Si c'est le la fin du blank c'est la fin de cette méthode (en gros).
Si tu n'as pas de méthode attachée à l'interruption verticale, alors la fin du blank je dirais que c'est avant ton VDP_waitVsync().
Sinon pour ta variable en assembleur, je pense que déclarer une variable dans le scope asm déjà c'est pas super ^^ (à mon avis elle reste locale).Tu devrais plutot la déclarer dans le scope C qui englobe et ensuite y accéder en asm.
Et aussi mixer du C et de l'asm, même si c'est supporté il vaut mieux en limiter l'utilisation car ça gène le compilateur C pour les optimisations.
Après si c'est vraiment pour mettre 3/4 instructions assembleur ok, sinon essai plutot de mettre ton code assembleur dans un fichier .s à part.
Tu peux regarder dans SGDK comment c'est fait (tu as plusieurs fichiers .s dans le répertoire src).
Sinon juste pour montrer qu'en C on peut faire déjà de belles choses, y'a djcc qui a releasé tout ces projet en cours et le dernier (un shoot horizontal) est vraiment pas mal fichu quand tu penses que c'est codé 100% en C :
http://gendev.spritesmind.net/forum/viewtopic.php?p=25264
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Sympa toutes les demos
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
..Stef a écrit:Tiens bizarre j'ai loupé les derniers messages...
où se situe la fin du code vblank ? Juste avant VDP_waitVSync(); (ou il faut une autre commande) ?
Tu as surement une méthode sur l'interruption vertical pour mettre à jour tes données dans le VDP ?
Si c'est le la fin du blank c'est la fin de cette méthode (en gros).
Si tu n'as pas de méthode attachée à l'interruption verticale, alors la fin du blank je dirais que c'est avant ton VDP_waitVsync().
Heu, non, je n'ai aucune méthode, et je met tout avant VDP_waitVsync(). L'interruption verticale est utile pour faire 5 défilements, avec un seul scroll, comme avec le jeu pinguoinbleu de djcc ? C'est très fort en tout cas.
Je suis content, je sais coder en asm sur MD !!!Stef a écrit:Tiens bizarre j'ai loupé les derniers messages...
Sinon pour ta variable en assembleur, je pense que déclarer une variable dans le scope asm déjà c'est pas super ^^ (à mon avis elle reste locale).Tu devrais plutot la déclarer dans le scope C qui englobe et ensuite y accéder en asm.
Alors, je déclare la variable qui englobe avant int main :
u16 kiwi;
int main( )
{
puis dans la boucle principale:
if (lcha == 0) // test programmeur.
{
if (value & BUTTON_A) // test programmeur.
{
lcha=1;
asm(
" add.w #2,kiwi"
);
}
}
puis j'affiche le résultat :
gsblip+=1; // economie ressource machine --> certaines des conditions n'ont pas besoin d'être lu à chaque boucle.
if (gsblip>5)
{
gsblip=0;
dbtest = kiwi;
unite = dbtest % 10; //unité
dizaine = dbtest / 10 % 10; // dizaine
centaine = dbtest / 100 % 10; // centaine
millier = dbtest / 1000 % 10; //millier
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Non l'interruption verticale n'a pas vraiment de rapport avec ça
Sinon félicitation pour ta première ligne d'assembleur :p
Bon après pas sur qu'elle serve à grand chose dans le cas présent mais elle a le mérite de fonctionner :p
Sinon félicitation pour ta première ligne d'assembleur :p
Bon après pas sur qu'elle serve à grand chose dans le cas présent mais elle a le mérite de fonctionner :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui, en fait c'est juste pour le fun.Stef a écrit:Non l'interruption verticale n'a pas vraiment de rapport avec ça
Sinon félicitation pour ta première ligne d'assembleur :p
Bon après pas sur qu'elle serve à grand chose dans le cas présent mais elle a le mérite de fonctionner :p
Page 5 sur 34 • 1, 2, 3, 4, 5, 6 ... 19 ... 34
Sujets similaires
» Sgdk - Sega Megadrive / Genesis Development Kit
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» [EST] Jeu Console Sega - 32X/Sega CD/Mega CD/Megadrive/Genesis
» BIERE PONG MegaDrive SGDK
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» [EST] Jeu Console Sega - 32X/Sega CD/Mega CD/Megadrive/Genesis
» BIERE PONG MegaDrive SGDK
Page 5 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum