GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Aide Coleco et assembleur

+6
nemokantio
drfloyd
Hpman
Spirale
vingazole
bfg
10 participants

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

Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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 : 4522
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par drfloyd 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.

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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 ?
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

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

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par bfg 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
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par Tryphon 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
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par drfloyd 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 !

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par nemokantio 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...
avatar
nemokantio
Patient contaminé

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par nemokantio 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
avatar
nemokantio
Patient contaminé

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par drfloyd 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"

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

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

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par bfg 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
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

Il a osé ! Aide Coleco et assembleur - Page 2 418468

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

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

MDR
avatar
nemokantio
Patient contaminé

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par Invité 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
Invité
Invité


Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par drfloyd 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 ?

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par bfg 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
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

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

_______________________________________________________
Aide Coleco et assembleur - Page 2 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par Ricco59_59 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
Ricco59_59
Patient contaminé

Masculin Nombre de messages : 501
Age : 56
Localisation : Tout près d'Arras
Date d'inscription : 25/07/2006

https://ricco59.blogspot.com/

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par Invité 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
Invité
Invité


Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

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

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



Aide Coleco et assembleur - Page 2 418468
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par Tryphon 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
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par bfg 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
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par vingazole 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
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 49
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Aide Coleco et assembleur - Page 2 Empty Re: Aide Coleco et assembleur

Message par bfg 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
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

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

Revenir en haut

- Sujets similaires

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