Aide Coleco et assembleur

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 17:47

L'idéal c'est peut-être "la méthode TOUKO" : apprivoiser la machine en codant en C - ou autre, sous réserve qu'il y ait d'autres possibilités - puis petit à petit introduire de l'ASM en inline pour optimiser certaines fonctions...

vingazole
Infirmier

Nombre de messages : 4014
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 17:48

oui donc selon vous impossible pour un débutant d'attaquer directement l'assembleur ? Ou plutot : trop complexe et penible à expliquer de manière claire.

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 17:54

Non-non : le problème à mon avis c'est que tu peux difficilement apprendre à programmer en assembleur "en l'air", il te faut une machine pour vérifier que ce que tu codes est correct.
Or, même pour une machine réputée simple comme la Coleco tu devras apprendre à programmer les composants de la console (le VDP pour les graphs et le PSG pour le son, principalement) pour obtenir "quelque chose" à l'écran/au haut-parleur.
Ca me semble plus simple avec un langage évolué a priori, mais peut-être me trompé-je. saispas
Après, si effectivement on a un émulateur/débuggeur efficace style Meka, pourquoi pas ?
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 18:08

bref, c'etait une idée comme ça en l'air.... à voir

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par bfg le Dim 19 Fév 2017 - 18:22

Alors j'ai implémenter la function calc_offset avec voes explications :

Code:
   .module calc_offset
   .globl _calc_offset
   
   .AREA _CODE
   ;unsigned int calc_offset(byte x,byte y);
_calc_offset:
   ld  hl,#2      ; Récupération des paramètres
   add hl,sp
   ld  b,(hl)  ; b = x  [hl = SP+2]
   inc hl
   ld c,(hl)  ; c = y  [hl = SP+3]
   
   ld   l,c
   ld   h,#0x00
   add   hl, hl
   add   hl, hl
   add   hl, hl
   add   hl, hl
   add   hl, hl
   ld   e,b
   ld   d,#0x00   
   add   hl,de

Et ... ça fonctionne !! :) Merci !

bfg
Patient contaminé

Nombre de messages : 786
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par Tryphon le Dim 19 Fév 2017 - 18:24

@drfloyd a écrit:oui donc selon vous impossible pour un débutant d'attaquer directement l'assembleur ?

Pour faire simple : oui.

Il faut que le débutant en question soit hyper motivé. Tu dois tout traiter toi même, les types de données, les calculs, même une concaténation de chaîne, tu dois la coder toi même. Même une bête division. Sans compter le hardware spécifique.

Partir du C, c'est plus intéressant. Un tuto sur l'utilisation de l'assembleur inline, ou même sur les techniques d'optimisation"avancées" (comme les boucles dont parle Stef) ça peut être intéressant...

Mais faut déjà être un peu plus que débutant !

Tryphon
Interne
Interne

Masculin Nombre de messages : 5192
Age : 40
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 18:27

ok, donc mauvaise idée.

Un cours complet de C sur Coleco avec cCdeblocks alors ? Ca fera peut etre naitre des vocations !

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 18:30

@bfg a écrit:Alors j'ai implémenter la function calc_offset avec voes explications :

Code:
 .module calc_offset
 .globl _calc_offset
 
 .AREA _CODE
 ;unsigned int calc_offset(byte x,byte y);
_calc_offset:
 ld  hl,#2 ; Récupération des paramètres
 add hl,sp
 ld  b,(hl)  ; b = x  [hl = SP+2]
 inc hl
 ld c,(hl)  ; c = y  [hl = SP+3]
 
 ld l,c
 ld h,#0x00
 add hl, hl
 add hl, hl
 add hl, hl
 add hl, hl
 add hl, hl
 ld e,b
 ld d,#0x00
 add hl,de

Et ... ça fonctionne !! :)
TROP CONTENT
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 18:32

@drfloyd a écrit:Un cours complet de C sur Coleco avec cCdeblocks alors ? Ca fera peut etre naitre des vocations !
Pour ça tu as la série de vidéos de bfg ! Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par nemokantio le Dim 19 Fév 2017 - 18:38

@bfg
Maintenant que tu as écrit ta fonction en asm et qu'elle fonctionne, tu peux t'amuser à l'optimiser !
Bon c'est là qu'il faut commencer à compter le temps pris par les instructions.
(et veiller à pas tout casser en optimisant)
Mais ces 5 add hl,hl, je les remplacerais moi !
Wink

EDIT : ah non je me suis gourré, tu peux pas améliorer les add hl,hl
Mais il y a d'autres endroits dans ta fonction ou tu peux un peu gagner...

nemokantio
Patient contaminé

Masculin Nombre de messages : 270
Age : 42
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 18:50

@nemokantio a écrit:@bfg
Maintenant que tu as écrit ta fonction en asm et qu'elle fonctionne, tu peux t'amuser à l'optimiser !
Bon c'est là qu'il faut commencer à compter le temps pris par les instructions.
(et veiller à pas tout casser en optimisant)
Mais ces 5 add hl,hl, je les remplacerais moi !
Wink

EDIT : ah non je me suis gourré, tu peux pas améliorer les add hl,hl
Si, avec une LUT, mais on ne va pas déjà le pourrir : ça marche, c'est déjà très bien ! Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par nemokantio le Dim 19 Fév 2017 - 19:09

Ah ben si finalement, en restant dans les décalages.
La valeur décalée à gauche de 5 est sur 8 bits.
On peut la décaler de 8 puis de trois vers la droite, non ?
(en utilisant l'accumulateur)
Code:
ld h,c
xor a
srl h
rra
srl h
rra
srl h
rra
ld l,a

nemokantio
Patient contaminé

Masculin Nombre de messages : 270
Age : 42
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 19:10

@vingazole a écrit:
@drfloyd a écrit:Un cours complet de C sur Coleco avec cCdeblocks alors ? Ca fera peut etre naitre des vocations !
Pour ça tu as la série de vidéos de bfg ! Wink

oui oui, mais c'est pas orienté Coleco (Dreamcast) et je pense qu'il faudrait aussi une version "papier"

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 19:30

Il me semble bien que la Dreamcast ET la Coleco sont ciblées par les vidéos de bfg...

@nemokantio a écrit:Ah ben si finalement, en restant dans les décalages.
La valeur décalée à gauche de 5 est sur 8 bits.
On peut la décaler de 8 puis de trois vers la droite, non ?
(en utilisant l'accumulateur)
Code:
ld h,c
xor a
srl h
rra
srl h
rra
srl h
rra
ld l,a

Oui, ça a l'air correct. Ca prend 48 cycles.

Une LUT (table de 32 en words) alignée sur une adresse multiple de 0x100 (0xFF00 par exemple) serait plus rapide :
Code:
ld a,c     ; (4)
add a,a    ; (4)
ld l,a     ; (4)
ld h,#0xFF ; (7)
ld a,(hl)  ; (7)
inc hl     ; (6)
ld h,(hl)  ; (7)
ld l,a     ; (4)
-------------
          43 cycles
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par nemokantio le Dim 19 Fév 2017 - 19:39

Ah, je ne pense pas assez aux LUT.
Mais bfg va nous brûler là !
Mr. Green

nemokantio
Patient contaminé

Masculin Nombre de messages : 270
Age : 42
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 19:41

C'est bien pour ça que je ne voulais pas aller sur le terrain de l'optimisation ! Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par bfg le Dim 19 Fév 2017 - 20:03

Heu ... moi à par les LUT de type TUR... Je comprends pas ce que vous me racontez ... Very Happy 


oui oui, les TUR LUT ...

bfg
Patient contaminé

Nombre de messages : 786
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 20:25

Il a osé !

Tiens, je viens de voir "ta première fois" en vidéo, c'était très sympa ! Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par nemokantio le Dim 19 Fév 2017 - 20:38

MDR

nemokantio
Patient contaminé

Masculin Nombre de messages : 270
Age : 42
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par Vetea le Dim 19 Fév 2017 - 20:50

Doc', l'ASM ce n'est pas si sorcier, la preuve, j'y suis même arrivé. Wink
Ca à l'air un peu élitiste aux abords, un cercle un peu fermé de vieux barbus, mais au final, ce n'est pas plus compliqué que les autres langages.
Après, on pinaille sur les cycles et compagnie, mais bon, quand ça marche c'est l'essentiel !

Il faut juste en avoir besoin pour certaine tâche, à moins de tout faire en pur ASM, ce qui semble de nos jours, un peu dingue et pas si courant à vrai dire.
Il faut voir déjà le nombre de projet aller au bout rien qu'avec les autres technologies que bon ... Wink

Le plus difficile c'est d'aller au bout d'un projet et c'est bien l'essentiel !
avatar
Vetea
Docteur *
Docteur *

Masculin Nombre de messages : 4477
Age : 46
Localisation : Baillargues
Date d'inscription : 22/06/2012

http://www.rolango.fr/

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 20:54

Oui tout le monde dit que lorsqu'on a compris l'assembleur c'est pas plus compliqué que le C ou le Basic.... c'est pour ça que j'imaginais la posibilité d'un tuto sympa

Totu en ASM dingue ? Meme sur un jeu Coleco de 8Ko ?

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par bfg le Dim 19 Fév 2017 - 20:59

Y'a pas mal de jeu en full Assembleur (Zombie Near, Mecha 8, les jeux d'Oscar Toledo quoi).

J'ai déja du mal à trouver les bonnes techniques en C, alors j'ose pas imaginer tout coder en ASM. Je vois pas comment on s'y retrouver pour organiser tout ça.

Par contre, pour piloter plus finement le VDP ça va me servir, les fonction du BIOS sont bien, mais elles gèrent tout les cas (dépassement de l'écran, tailles variables etc etc ...). Donc en faisant du sur mesure on gagne forcément énormément de cycle.

Bon, je sais pas si je vais réussir quelques chose, mais au moins je vais essayer ...

bfg
Patient contaminé

Nombre de messages : 786
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par drfloyd le Dim 19 Fév 2017 - 21:03

ok, bon le mieux reste de bien savoir bien développer en C Mr. Green

_______________________________________________________


Mon profil Gamopat Advisor de vendeur :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor







avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 126467
Age : 48
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par Ricco59_59 le Dim 19 Fév 2017 - 21:07

Bravo Bfg pour ton immersion en asm Z80. Ensuite tu partiras à la conquête des amstrad, msx, mastersystem 1 etc... Wink

Ricco59_59
Patient contaminé

Masculin Nombre de messages : 366
Localisation : Lille
Date d'inscription : 25/07/2006

http://ericmcolleco.free.fr

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 21:09

@bfg a écrit:J'ai déja du mal à trouver les bonnes techniques en C, alors j'ose pas imaginer tout coder en ASM. Je vois pas comment on s'y retrouver pour organiser tout ça.
La logique est la même :  tu découpes ton programme assembleur en routines comme tu découpes ton programme C en fonctions.


Dernière édition par vingazole le Dim 19 Fév 2017 - 21:25, édité 1 fois
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par TOUKO le Dim 19 Fév 2017 - 21:11

il te faut une machine pour vérifier que ce que tu codes est correct.
100% d'accord, faire de l'ASM dans le vide ne sert strictement à rien .
avatar
TOUKO
Interne
Interne

Masculin Nombre de messages : 12523
Age : 44
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 21:14

Sinon pour apprendre à programmer un jeu en ASM on peut aussi utiliser cette méthode :



avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par Tryphon le Dim 19 Fév 2017 - 21:18

L'assembleur c'est pas compliqué, c'est chiant. Juste très très chiant. Quand tu peux l'éviter, tu évites.

Après, tous les langages sont simples ou compliqués, selon ce que tu fais avec. C'est clair que bouger deux sprites sur un fond fixe, c'est facile en Basic, c'est facile et chiant en assembleur. Un moteur 3D, c'est compliqué en Basic, c'est compliqué et chiant en assembleur Mr. Green


Dernière édition par Tryphon le Dim 19 Fév 2017 - 21:20, édité 1 fois

Tryphon
Interne
Interne

Masculin Nombre de messages : 5192
Age : 40
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par bfg le Dim 19 Fév 2017 - 21:18

@vingazole a écrit:
@bfg a écrit:J'ai déja du mal à trouver les bonnes techniques en C, alors j'ose pas imaginer tout coder en ASM. Je vois pas comment on s'y retrouver pour organiser tout ça.
La logique est la même :  tu découpes ton programmes assembleur en routines comme tu découpes ton programme C en fonctions.

Oui ça doit être un question de connaissance et d'habitude. Rien qu'une boucle "for" en ASM et j'ai l'impression d'avoir codé un jeu complet !  Mr. Green Mr. Green Et je suis incapable de la refaire sans regarder l'exemple   MDR

bfg
Patient contaminé

Nombre de messages : 786
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par vingazole le Dim 19 Fév 2017 - 22:06

Classiquement en ASM on ferait plutôt une boucle comme ça :

Code:
          ld   c,2      ; 2 itérations

boucle:
           [...]

           dec c         ; c = c - 1
           jp nz,boucle  ; boucle si le résultat est non-nul

En z80 on utiliserait plutôt le registre b car l'opérande djnz permet à la fois de décrémenter b et de faire le saut conditionnel.

De manière générale on déplierait la boucle plutôt que d'utiliser des registres et des cycles précieux pour seulement deux itérations ! Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4014
Age : 43
Localisation : Les Herbiers (85)
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par bfg le Dim 19 Fév 2017 - 22:10

Yep pour le dépliage. Mais je sais pas encore trop ou je vais, donc plus j'en comprends mieux c'est. 😉

bfg
Patient contaminé

Nombre de messages : 786
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Re: Aide Coleco et assembleur

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum