Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

304 connectés actuellement

29184120 visiteurs
depuis l'ouverture

4385 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Fusion

Lunae - le bazar d'Emz0

RPG Maker Détente

New RPG Maker

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Vos créations > Rétro Making


Monos - posté le 15/01/2016 à 06:37:41 (57322 messages postés)

❤ 0

Vive le homebrew

Voici la un topic pour parler de ma passion. Le vrais, et l'unique Rétro Making. Pas cette Ersatz que je fais sur RM/Fusion xd. (A la demande de création que j'ouvre ce topic !!!) Je place ça ici car je trouve que ça plus ça place que dans les projets.

Bon vous le savez bien j'adore le rétro. Bon je ne parle pas de l’ustensile qui se trouve sur une voiture pour regarder ce qui se trouve derrière l'automobile. Non je parle du vrais Rétro au niveau informatique. Les vieux jeux.
J'ai vécu avec deux micros ordinateur avant de migrer sur PC.

Un Amstrad 6128 (et 464 aussi) qui possède 64ko de mémoire (et 64ko paginé en plus pour le 6128). Paginé ? Oué. En gros pour faire simple les 64ko de mémoire supplémentaire sont découpé en 4 Bloc de 16ko. Et si on veux utiliser un bloc de la mémoire supplémentaire, on doit l'échanger contre un bloc prévus à cette effet de la mémoire principale. Ce qui nous fait en tout 5 bloc. Quand on r'ajoute de la mémoire supplémentaire cela marche comme ça. J'ai une carte qui ajoute 512Ko de mémoire sur mon Asmtrad 6128 que j'ai.
L'amstrad est cadencé par un Zilog Z80 à 4Mhz. (8 bits) Un palette de 27 couleurs, trois modes d'affichage. Un mode à 2 couleurs mais en "Grande résolution", 640*200 points, un mode intermédiaire avec 4 couleurs affichable est une résolution en 320*200 points. Et un mode en petite résolution en 160*200 points qui permet d'afficher 16 couleurs.
Les disquettes avait de faces. Une face fait 172ko en moyenne. L'amstrad avait pour concurrence Le C64 de chez Commodore

L'Amiga. J'avais eu rapidement un Amiga 500. 512Ko de mémoire avec une carte qui passe la mémoire à 1Mo.
Le proco est un Motorola 6800 cadancé en moyenne à 7Mhz. (C'est un proco 16/32 bits) Une palette de 4096 couleurs.
Une pléthore de mode d'affichage. L'amiga pouvais facilement afficher 32 couleurs voir 64 couleurs dans un mode spécial. Les 4096 couleurs était affichable à l'écran mais doit prendre trop de ressource pour du jeu.
Particularité des disquettes, l'amiga travaille avec des disquette de 880ko. (Un formatage pc c'est 720ko), mais à partir d'un os installé , le mig est capable de les lires aussi. (Sortie en 87)

L'amiga 1200 est une petite révolution. Cela n'a pas duré car à le PC à commencé à prendre de la puissance avec ses cartes graphique, et la chute de commodore n'aida pas à l'amiga à évolué. On connais la suite, MAC<=>PC
Le 1200 a un proco supérieur et cette fois si en 32 bits. 2Mo de base. Le proco cadencé à 14mhz. Cette ordinateur est toujours évaluable. Des nouvelles pièces sortent toujours. Comme il est équipé d'un port IDE, nous pouvons brancher un tas de chose dessus. Disque dure en carte flash par exemple. On lui foutre des carte graphiques, le mig 1200 peut aller sur le net... La révolution informatique de ce micro tien aussi à son chipset (puce) graphique. Le Mode AGA qui lui permet d'afficher 256 couleurs à l'écran avec une palette dite en True color. En gros vous ouvrez n'importe qu'elle logiciel de dessins vous choisissez une teinte, et l'amiga à la même.256 valeurs pour le Rouge, 256 pour le Vert, 256 pour le bleu pour faire la teine. (Ce que nous connaissons tous vous savez les couleurs de type #AFA5B2
Alors que le le mig 500 n'a qu'une 16 valeurs pour le rouge, 16 pour le vers et 16 pour le Bleu.

En ce moment je suis plus sur l'amiga. Après avoir sortir Prisonnier


Lien, je cherche à apprendre à faire un RPG jap.
Car ce type de jeu est vraiment absent sur ce genre de micro même en amateur.
J'ai testé donc un déplacement case par case.
(Plusieurs test même)


Cela tourne pas trop mal.
Je programme tout ça dans un Basic amélioré créer sur l'amiga par François Lionnet. L'Amos.
Il permet d'avoir accès au capacité de l'amiga sans entrer dans de la programmation "lourde".

Une recherche pour un mode de combat.
image

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
Gosub BATTLE
 
Rem #########################
Rem # Initiation de l'écran #
Rem #########################
Screen Open 0,320,200,16,Lowres
Flash Off : Curs Off : Paper 0 : Cls 
Rem ############################ 
Rem # Initiation des variables # 
Rem ############################ 
PJX=16 : Rem position X du héros
PJY=16 : Rem Position Y du Héros
Dim MAP(20,13) : Rem Taille de la map 
PJPOSE=1
BATTLERANDOM=Rnd(20)
 
 
Gosub ARNE
'Save Iff "arne.iff" 
 
Rem ########################## 
Rem # Gestion de la map test # 
Rem ########################## 
' A=Numéros du Tiles, B=Passabilité
 
For Y=0 To 11
   For X=0 To 19
      Read A
      C=0
      
      If A=1 and C=0 Then B=1 : A=1 : C=1 : Rem Montagne 
      If A=0 and C=0 Then B=0 : A=2 : C=1 : Rem Sol
      If A=2 and C=0 Then B=1 : A=3 : C=1 : Rem Eau
      If A=4 and C=0 Then B=0 : A=4 : C=1 : Rem Village
      If A=5 and C=0 Then B=0 : A=5 : C=1 : Rem Forêt
      MAP(X,Y)=B
      Paste Icon X*16,Y*16,A
      
   Next 
Next 
 
Rem #################
Rem # Data Map Test #
Rem #################
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2
Data 1,0,0,1,1,1,1,1,0,0,0,0,0,0,2,2,2,2,2,2
Data 1,0,4,0,0,5,5,1,1,0,0,5,5,5,5,0,2,2,2,2
Data 1,0,0,0,0,0,0,1,1,0,0,5,5,4,5,0,0,2,2,2
Data 1,0,0,0,0,0,1,1,1,0,0,0,5,5,5,0,0,2,2,2
Data 1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1
Data 1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
 
 
Rem #####################
Rem # Boucle principale #
Rem #####################
Do 
 
Locate 1,1 : Print "           " : Locate 1,1 : Print(SCHIP-Fast Free)
   Gosub COMMANDE
   Gosub MOUVEMENT
   Bob 1,PJX,PJY,PJPOSE
   Gosub TESTBATTLE
   Wait Vbl 
Loop 
 
Rem ###################
Rem # Commande du jeu #
Rem ###################
COMMANDE:
If Key State(78)=True and MVT=0 and MAP((PJX/16)+1,PJY/16)=0 Then MVT=6 : Rem Mouvement Droite 
If Key State(79)=True and MVT=0 and MAP((PJX/16)-1,PJY/16)=0 Then MVT=4 : Rem Mouvement Gauche 
If Key State(76)=True and MVT=0 and MAP(PJX/16,(PJY/16)-1)=0 Then MVT=8 : Rem Mouvement Haut 
If Key State(77)=True and MVT=0 and MAP(PJX/16,(PJY/16)+1)=0 Then MVT=2 : Rem Mouvement Bas
Return 
 
Rem #############
Rem # Mouvement #
Rem #############
MOUVEMENT:
Rem #################### 
Rem # Mouvement Droite # 
Rem ####################   
 
If MVT=6 and PAS<8
   Add PJX,2
   Inc PAS
   
End If 
 
 
Rem #################### 
Rem # Mouvement Gauche # 
Rem #################### 
If MVT=4 and PAS<8
   Add PJX,-2
   Inc PAS
End If 
 
Rem ################## 
Rem # Mouvement Haut # 
Rem ################## 
 
If MVT=8 and PAS<8
   Add PJY,-2
   Inc PAS
End If 
 
 
Rem #################
Rem # Mouvement Bas #
Rem #################
If MVT=2 and PAS<8
   Add PJY,2
   Inc PAS
End If 
 
Rem Update de Pose 
If MVT>0 Then Gosub UPJPOSE
 
Rem #####################################
Rem # Remise à 0 du pas et du mouvement #
Rem #####################################
If PAS>7 Then PAS=0 : MVT=0 : BT=1
 
Return 
 
Rem ################ 
Rem # Palette Arne # 
Rem ################ 
ARNE:
Palette $0,$999,$FFF,$B23,$E68,$432,$A62,$E83,$FE6,$244,$481,$AC2,$123,$58,$3AF,$BDE
 
 
Return 
Rem ############## 
Rem # Pose du PJ # 
Rem ############## 
UPJPOSE:
 
If MVT=2 and PAS=1
   If PJPOSE=1
      PJPOSE=2
   Else PJPOSE=1
   End If 
End If 
 
If MVT=6 and PAS=1
   If PJPOSE=3
      PJPOSE=4
   Else PJPOSE=3
   End If 
End If 
 
If MVT=4 and PAS=1
   If PJPOSE=5
      PJPOSE=6
   Else PJPOSE=5
   End If 
End If 
 
If MVT=8 and PAS=1
   If PJPOSE=7
      PJPOSE=8
   Else PJPOSE=7
   End If 
End If 
 
 
Return 
 
 
Rem ############################ 
Rem # Test Battaille Aléatoire # 
Rem ############################ 
TESTBATTLE:
If BT=1
 
 
   Dec BATTLERANDOM
   If BATTLERANDOM<1
      Gosub BATTLE
   End If 
   
   BT=0
   
End If 
 
Return 
 
Rem ################## 
Rem #Script de Combat# 
Rem ################## 
BATTLE:
 
Wait 5
Screen Open 1,320,240,16,Lowres
Curs Off : Flash Off 
Gosub ARNE
Paper 0
Cls 
 
Gosub HUD
 
 
Bob 2,(320-16)/2,130,1
 
 
Clear Key 
 
 
' Boucle de combat 
Do 
' Calcule pour s'avoir qui à la main 
' Si c'est un PNJ action PNJ 
' Si c'est un PJ Action PJ 
' Si l'ennemie est mort retour 
' Si c'est le groupe PJ, Game Over 
Wait Vbl 
Loop 
Wait 20
Screen Close 1
BATTLERANDOM=Rnd(20)
Return 
 
HUD:
 
Wind Open 1,10,160,14,9,1
Curs Off 
Paper 12 : Clw 
 
Locate 1,1 : Print "Attaquer"
Locate 1,2 : Print "Compétence"
Locate 1,3 : Print "Objet"
Locate 1,4 : Print "Défense"
Locate 1,5 : Print "Fuir"
 
Wind Open 2,120,160,25,9,1
Paper 12 : Clw : Curs Off 
 
Locate 1,2 : Print "Monos"
Locate 1,3 : Print "Astrid"
Locate 1,4 : Print "Sylvanor"
Locate 1,5 : Print "Perine"
 
Locate 13,1 : Print "PV"
Locate 18,1 : Print "MP"
Locate 12,2 : Print "9999/9999"
 
Return 
 


Et le code source qui a servie pour le déplacement de la vidéo.
A l'heure actuel au moment ou j'cris ses lignes j'ai modifier ma programmation pour le déplacement.
L'amos peut être compilé.

D'autre test graphique sur Amiga.
image

Au niveau de l'amstrad j'avais fais pas mal de test l'année dernière. Il faut que je retrouve un vieux PC avec des connectiques pour brancher un lecteur Disquette. Pour formater mes disquettes en 720ko pour le lecteur 3.5 que j'ai sur mon amstrad pour faire des tests en condition réel Bon bref,

L'amstrad possède un Basic, c'est pratique pour pas mal de "jeu", ou autre mais bien lent quand il faut manipuler les graphismes. J'avais dont débuter mon apprentissage de l'assembleur. (Langage Machine)

J'avais réussis à créer un affichage de tiles en langage machine et même à déplacer un "sprite"

image
image
L'amstrad n'a pas de sprite machine pour information, et en plus la mémoire vidéo et entrelacer. CE que je veux dire c'est que les cases mémoires pour afficher des points à l'écran arrivé à certaine ligne ça saute de ligne pour aller à d'autre ligne plus bas avant de revenir bien plus tard pour compléter ça. La merde quoi.

J'avais même créer sur fusion un créateur d'image pour amstrad.
image
Il me sortait du code basic, que je récupéré sur l'émulateur amstrad. J'avais codé un programme qui me dessine l'image et je récupère les données binaires de l'image.

image
Un code assembleur qui me permet de déplacer deux lettre cote à cote. Je voulais à la base créer mes persos de combat (toujours pour un RPG) en caractère. Avec cette routine (Bout de programme) assembleur cela me permet de faire en gros un pas en avant au perso rapidement et sans décalage.
image

Voila pour débuter le topic. Je parlerais un peu plus de l'amiga la prochaine fois la à part avoir ré écrit la routine de déplacement, j'ai pas fais grand chose.

Bisous.

Signer du nez ?


Creascion - posté le 15/01/2016 à 15:19:35 (1571 messages postés)

❤ 0

Très cool! C'est intéressant les explications sur la mémoire pour ceux qui en connaissent pas trop le principe (c'est mon cas!).

Ça serait bien si tu continuais cette approche pédagogique à expliquer les choses!


verehn - posté le 15/01/2016 à 15:22:14 (9054 messages postés) - honor

❤ 0

Vhehrhehn

J'ai envie de dire MER IL ET FOU, mais tant d'amour pour le rétro, c'est beau.

Eldrao ~ PakuPaku ~ Winged Light ~ Ruin ~ Ma galerie ~ LTDAD ~ Don de graphismes plateforme 2D


Mr Drerrawyn - posté le 15/01/2016 à 15:29:18 (1694 messages postés)

❤ 0

Le

C'était super intéressant, tout ce qui est combines pour les sprites (ça me rappelle le temps des calculatrices programmables :) )
C'est agréable à lire et y'a plein de belles images :D


Monos - posté le 15/01/2016 à 17:49:11 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

C'était super intéressant, tout ce qui est combines pour les sprites (ça me rappelle le temps des calculatrices programmables :) )


Ba ta calculatrice et l'amstrad c'est à mon avis le même proco. un zilog non ?

Il y a beaucoup de chose à dire et j'ai beaucoup de chose à apprendre que cela soit sur Amstrad ou Amiga. J'ai juste une "initiation" en assembleur.

Signer du nez ?


solidboko - posté le 15/01/2016 à 18:51:37 (292 messages postés)

❤ 0

C'est extrêmement intéressant Monos. Et le rendu est vraiment plein de charme !

Maker un jour, maker toujours.


Monos - posté le 17/01/2016 à 11:33:02 (57322 messages postés)

❤ 0

Vive le homebrew

Zou, hier j'ai testé le scrolling pour la map sur amiga, et pour le moment c'est choux blanc. Il va falloir que je me plonge un peu plus avec pas mal de test.

Je vais parler un peu des graphismes sur l'amos et de certain terme technique lié à la mémoire d'un ordinateur. Je vais commencer par ce thème,et on va causer quéquette ! Encore une fois je fais une simplification de beaucoup de chose en fonction de ce que je sais, et pour faire comprendre une « base ».

La bas d'un ordinateur, (a vrais dire tout ce qui électronique du moins pour le moment), c'est le courant. L’électricité quoi. Une machine sait seulement si il y a du courant électrique qui passe ou pas dans ses composants, mémoire et compagnie, il y a donc deux états , bravos vous avez découvert le Bit !
0-1 / False-True/ Ouvert-fermer.. Tien Les interrupteurs sur Rpg Maker, ou les drapeaux sur Fusion xd

Le Bit a donc que deux valeur. 0 ou 1.
0 = 0
1 = 1
10 =2
11= ?
Facile.
On dit que nous parlons en base de deux ! Le système Binaire. (Et pas solaire en passant)

Vos PC fonctionne seulement comme ça. Tous ce que vous faites sur un PC / Téléphone sont transformé en langage binaire pour que le pc puisse comprendre ce qu'il doit faire. C'est le « Langage Machine ». Chaque processeur à ses propres codes. Un Ziglon Z80 de l'amstrad/Game Boy/Master System/MSX/Game Gear n'a pas le même langage qu'un 68k de l'amiga/atari/vieux Macintosh par exemple ou d'un PPC,un X86 et j'en passe. Enfin certain proco d'une famille sont compatibles.

M'enfin bon pour continuer un petit peu sur ça, vous imaginez travailler seulement en 0/1 ? La galère. On peux le faire car sur Amstrad sur le Basic incorporé on avait deux fonctions pour injecter directement des valeurs dans la mémoire. (Peek Poke),  donc on pouvais programmer en langage machine comme ça. L'homme à donc créer une surcouche pour se simplifier la vie. Les langages assembleurs qui va compiler du code machine tout simplement, ensuite nous avons d'autre langage plus use friendly comme le C,C++,Java, Ruby, Basic, python, perle, et j'en passe.

Bon revenons à nos zizi et les bases de X,
Nous dans la vie on compte en base de 10.
0=0
1=1

9=9
Et après 9 on reviens à 0 et on ajoute 1 au chiffre suivant. Ce qui fait bien 10 possibilité.
10
11
...
19  
20

C'est rigolo non ?

Nous utilisons une autre base aussi dans la vie de tous les jours. Je vous laisse deviner c'est facile…

Une 4em base est souvent utiliser en informatique. L’hexadécimale soit une Base de 16. Et ça vous avez souvent rencontré son écriture. Si si. Si vous ouvrez un logiciel de dessin, choisissez une couleur et vous allez voir des chiffre et lettres s'afficher du genre $FFFFFF pour le blanc.
Les valeurs de 0 à 15 sont représenté par des chiffres et des lettres. (Consonne, Voyelle, voyelle.. Tututu 8 lettre xd)
0 1 2 3 4 5 6 7 8 9 A B C D E F
Pour faire simple l'écriture Hexadécimale permet de simplifier un tas de chose en programmation pour la mémoire. J'en parlerais plus tard quand je reprendrais mon apprentissage sur l'amstrad et le Z80

Passons à la suite. Il y a une mesure que vous utilisez souvent en informatique. Vous l'aimez bien pour combien de place il vous faut pour télécharger Aëdemphia par exemple.
C'est L'octet.

L'Octet c'est une mesure standard de l'informatique. Une case mémoire de votre ordinateur équivaut à 1 Octet. Et 1 octet c'est 8 Bits !
Soit une valeur de 2 puissances 8 = 256. (Tien donc C'est pas des limitations graphiques de Rm2000 et 2003 par image ça?)
Si Ce qui veux dire un points sur Rpg Maker 2000 est codé sur un Octet qui correspond à un index d'une couleur. Je schématise car je ne sais pas trop comment est codé fichier PNG indéxer mais je pense qu'il y a un tableau de 256 valeurs qui représente une teinte et une valeur par pixel qui représente cette couleur. Avec peut être divers compression quand plusieurs même type d'index et cote à cote pour gagner de la place. Je ne dois pas être loin de l'idée de base de ce type de fichier.

Mais Bit  des fois je peux le voir écrit Byte ! Byte c'est Bit en anglais alors ?
Stope ! Voilà un première piège et gonflage de chiffre sur des produits ! Enfin presque.
Bon Byte est la plus petite unité adressable d'un ordinateur. Oui quand le proco travaille, il va chercher des informations dans les cases mémoires, et en remet de nouvelle. Il travaille groupé. Il n’envoie pas (ou plus) des données bit par bit mais il fait des tires groupés. La standardisation depuis pas mal de temps c'est des tires groupés de 8 bit.
Donc le plus souvent :
1 Byte(1 b) = 1 Octet (1 o)= 8 Bits (8 B)
Oui petit b pour Byte et grand B pour Bit.

Donc voir une personne dire je télécharge plus vite que toi car j'ai un débit de 32 Mégas Bits par seconde et toi 4 Mégas Byte par seconde… ou 4 Mo/S ….
Donc attention à ne pas mélanger Byte/Octet et Bits.

Fini avec cette petite partie ! Ouf.

Je suis chaud ce matin xd
Alors avant vraiment de continuer j'ai envie de parler de l'amiga et un début de mon matériel.

image
Voici la bête que j'ai à coté de moi. Branché sur une petite télévision. C'est un amiga 1200 de chez commodore.
Sur le 1200 combine unité centrale et clavier. (Tout comme le 500 et le 600)
Pavé numérique, clavier Azerty mais pas tout à fait disposé pareil qu'un clavier standardisé pc.

image
Le disque dure ! (Si si) Le 1200 est équipé d'un port IDE, donc nous pouvons brancher un tas de chose. Et la une carte flash en tant que disque dur c'est super cool et rapide. (4 Go de disque dure , c'est le maximum sur ma machine de toute façon et c'est franchement suffisant.
image
Encore une carte flash connecté sur le coté en PCMCIA. Cela me permet de faire des transfère facilement entre mon PC et l'amiga étant donnée que sur mon pc je n'ai plus de port disquette, je suis emmerdé pour beaucoup de chose et non il faut des disquette en 720ko et les lecteur de disquette externe ne savent pas formater en 720ko ! C'est comme ça.

Bon le mois prochain je dois commander des pièces pour remettre à neuf l'amiga car j'ai des vieux condensateurs et il est temps de les changer avant ça cool et que ça fasse des dégâts sur la carte mère.

Comme chaque ordinateur, il y a un OS (ou plusieurs) L'amiga lui travaille avec le Workbench.
Sans disque dure il faut le lancer en disquette, mais quand on a un disque dure on l'installe.
Le Workbench (ou Amiga OS) permet donc de gérer l'amiga,(traitement de texte, couleur, formatage de disquette… Bon c'est vraiment utile quand on a un disque dure. Sur mon Amiga 500 c'était rare que l'os est lancé. On peux faire des disquette autobootable pour charger le programme dessus.

L'émulation ;
Bon il est beaucoup plus pratique pour moi d'utiliser l'émulation pour travailler et de vérifier mon travaille en situation réel après.

Comme tout, il faut un logiciel émulateur de système, chez amiga Win UAE sur PC windows est le plus réputer. (C'est légale)

Ensuite il faut comme tout émulateur, la Rom du système que nous voulons émuler. (Mémoire morte) Sur amiga on nomme la Rom les Kickstart. Sur mon 1200 c'est la Rom 3,0. (qui va avec l'amiga Os 3,0) sur mes 500 ce sont des 1,3.
C'est la que légalement ça se gatte. Trois possibilité, trouver ça sur des sites mais ce n'est pas légale.
La copier sur un vrais amiga (C'est légale)
ou acheter les rom légalement. Et oui Amiga est toujours commercialisé. J'ai opté pour ce système.
Clanto à les droits sur les amigas dit classique. Amiga Forever. Qui est une surcouche de Win UEA avec les Rom officiel pour émuler du 1er Amiga au derniers amiga classique avec co processeur PPC (Mais la il faut achêter amiga OS4,1 chose que j'ai fais aussi) et les deux consoles de jeu amiga….

Donc c'est sur cette version que je travaille.
image
L'émulateur avec le workench d'installé sur un disque dure virtuel.

Notons que Amstrad à « libéré » ses roms donc un émulateur Amstrad est légale. Attention cela ne veux pas dire que les jeux et logiciel sont légaux à craked / télécharger… Bon je parle bien sur de tout ça officiellement.

Bon revenons à nos nanaky vous le voulez bien.
Comme je le disais dans mon premier post, nous pouvons programmer l'amiga bien des manières.
Assembleur, C, Amiga E, Arex et un langage de la famille des Basic. C'est ce que nous retrouvons le plus. Il y en existe d'autre bien sur.
Pourquoi je choisis le Basic ? Car c'est le plus simple et c'est quand même suffisant puissant sur Amiga pour tirer partie de la machine. Peux importe le basic de l'amiga d'ailleurs. Nous n'avons pas besoin d'injecter du code machine pour sortir des bon trucs à contrario du C par exemple et rapide pour afficher des images contrairement au micro ordinateur 8bits qui eux au niveau graphismes sans maîtriser un peu le langage machine au minimum , c'est beaucoup plus dur à travailler beaucoup type de jeu.

Pourquoi je choisis l'amos ? Peut être par habitude de travailler avec un logiciel créer par la clickteam et François lionnet. Et aussi que j'ai trouvé des livres papier, que l'ide est correcte. (Les autres IDE des autres langage c'est la cata xd), François L à fait du bon boulot pour rendre « facile » la programmation de l'amiga, (ce n'est pas son premier coup d'essais, il fait la même chose sur les Atari ST avec le STO Basic) puis j'aime le basic !!!
image
Les couleurs sont paramétrable. J'aime bien être en mode dark, ça fait moins mal au yeux.
Les fonctions de l'amos sont sympathique, gestion de fenêtre, de sprites, entrée sortie….

Bon comme je le disais au début, je voulais parler de la gestion des graphismes sur l'amos.
Alors il y a plusieurs façon d'afficher des graphismes/image à l'écran.

Le format d'image usuel sur Amiga c'est le IFF Amiga. Enfin image vite dit car c'est un format de fichier qui peut être image, animation, son.
Au niveau PC, un truc cool c'est que photoshop CC permet d'exporter du Iff Amiga sans plugin.
Il suffit de l'indexer au nombre de couleurs autorisé (32 sur amos) et ça marche.

La deuxième solution c'est d'utiliser les commandes de gestion de points du basic.
Plot X,Y,C
Afficher un point au coordonner X,Y avec l'index de couleur C.
Il y a d'autre fonction pour faire des traits, des cercles, des rectangles…

La troisièmes grande catégorie ba c'est d'utiliser des images qui sont stockés dans des bank de mémoire de l'amos. Et la c'est rapide !!!
On peux décharger des banks pour en charger d'autre sur une disquette, ou permuter des bank car il y a des catégories.
Au niveaux graphismes il y a deux catégories de Bank graphique. Les Icones et les Sprites.
Les Icones c'est des morceaux qui ne peuvent pas être bougé. C'est léger, rapide à afficher.
On peut les utiliser en tant que tiles non animé par exemple. Faire des Windowskin, des facesets…

La bank des sprites c'est des images que l'amos peut faire bouger. Ils ont une couleur transparente mais c'est la que ça se complique, l'amiga et l'amos pro gère trois type de sprites.
Les Sprites Machines, les Sprites Sofware, et les bobs. (Bob Bit, l'informatique c'est quand même hard!)
Je n'ai pas vraiment fait de test sur les sprites (ou lutin) mais je sais qu'un sprites machine c'est rapide. Contrôler directement par un processeur de l'amiga. Il permet d'afficher 8 sprites machines mais les sprites ont seulement 3 couleurs plus une transparence !
On peux passer sur des sprites Sofware, contrôler par l'amos, ce qui permet de gérer 15 couleurs plus la transparence.
Il y a des limitations d'affichage, de taille et divers chose.

Les Bobs, c'est ce que j'utilise le plus, je n'ai plus de limitation de couleurs (enfin sauf celle de l'amos qui est 64 couleurs en mode Ham)


Bon comment mettre des gens dans l'amiga comme dans goldun sun xd
image
Voici l'éditeur d'image. La c'est l'éditeur d’icône, mais j'ai la même chose pour l'éditeur de sprites.
Je peux avoir une bank de sper, sprite et icône au même moment dans le programme.
On retrouve les outils basique d'un éditeur d'image. La palette de couleur indexer, le point, le trait, les rectangle vide et plein, le pot de peinture … A droit avec les numéros ce n'est pas des calques, et non. C'est le numéro d'id de l'image dans la bank.

Le logiciel permet de charger et de sauvegarder des bank sur support, de placer la bank en mémoire de l'amos, de choisir le nombre de couleur, d'aller chercher une image iff pour y faire une découpe de dessins à mémoriser. ….
image
La palette de couleur. Ce n'est pas du true color donc les trois composants sont codés en seulement sur 16 teintes et non sur 256 possibilité.
Ce qui fait que l'amiga en mode OCS, c'est 16*16*16=4096 possibilités de couleur.

image
En haut nous pouvons pour chaque « case » choisir le nombre de couleur.
(Mode Ham si nous sommes en 64 couleurs.)

image
La bank des « sprites ».
j'ai placé un gob pour mes test.

image
Il y a même un visualiseur d’animation, on choisis les cases, la vitesse et on regarde si c'est bon !

Bon il est possible de coder des programmes qui permet de manipuler les banks de mémoire de l'amos ! Le manuel nous en parle et donne toutes les informations.

Voilà le dilemme donc, les sprites et les tiles, se place naturellement mais ou placer les « monstres » par exemple. Les animations, dois-je re créer des banks et les charger ça à la place d'une autre pour éviter les lourdeur ? Car oui la place en mémoire compte.
Pour un Rpg faire un système de combat à la vu de coté ne s'organise pas de la même manière qu'un système de combat en vu subjectif à la dragon quest.

Je sais que les bob n'efface pas les icônes. Alors placer les monstres en mode icône ? Mais comment le faire disparaître quand il meurt , ou le faire flasher ? Obliger de copier des zones « mortes » en noir, pour appliquer sur le monstre en question, et affricher le monstre, ce qui le fait « clignoter » Mais dans ce cas la puis-je placer un vrais fond de combat ? C'est tellement facile de faire les monstres en bob pour les effacer mais j'ai la place pour les animations de combat si j'en utilise ?…

Voici une petite liste de problématique à régler, à faire un choix, à trouver des astuces, à bien répartir les banks de donnée….

Bon je stop ce pavé pour ce dimanche, la suite la prochaine fois

Signer du nez ?


arttroy - posté le 17/01/2016 à 14:09:39 (2394 messages postés)

❤ 0

Just working

Roooh P..... Je suis amoureux de ce topic... Et le mec dit qu'il a encore pleins de trucs à apprendre... T'es déjà une fucking encyclopédie vivante mec ^^. Merci d'avoir pris le temps de nous expliquer tout ça je vais apprendre pleins de trucs je suis content ^^.

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Monos - posté le 17/01/2016 à 14:47:27 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

Et le mec dit qu'il a encore pleins de trucs à apprendre...


Ba heu , oui car ce que je viens dire c'est des trucs de débutant dans la prog.

Edit :



Oula, j'ai passé mon samedi matin, un peux hier soir et ce matin eu ré ka, j'ai enfin trouvé comment faire une map scrolling en amos enfin trouvé, c'était dans un des livres traitant de l'amos que j'ai.
J'ai 4 ou 5 livres papier en anglais sur le sujet, et sur un livre il explique bien ! J'ai juste modifié deux trois truc pour afficher les icones et ça semble marcher. yeah a voir maintenant si ça tien la charge au niveau ram et tout ça.

La c'est un sofware Hardware. La fenêtre d'arrière plan est en 640 par 512, mais seul du 320,256 sont affiché à l'écran et je déplace la zone affichable tout simple.
Divers test maintenant m'attendre pour voir si je peux agrandir par exemple la fenêtre général pour faire des plus grand map et vérifier la ram, et la puissance du proco, c'est la que le hic peux venir sur les vielles machines.

Edit du 22 Janvier
Ayé j'ai perdu mon auditoire xd
Bon que va t'on parler ce petit vendredi ? J'ai passé un peu de temps cette fin de semaine à faire des calcules de mémoire. Le scrolling c'est bien, mais ma technique est chouette mais avoir j'avais placé un doute sur la capacité de l'amiga à tenir la charge. Je me suis donc plongé sur mes livres pour retrouver des formules magiques et j'ai trouvé la formule pour calculé la place mémoire que prendre une fenêtre.

Portion de code : Tout sélectionner

1
(Hauteur x Largeur x Plans)/8 

en octet.
Les plans c'est un coéf en fonction du nombre de couleur que la fenêtre peut afficher.
Coeff 1 pour 2 couleurs.
Coeff 2 pour 4 couleurs
coeff 3 pour 8 couleurs
coeff 4 pour 16 couleurs
coeff 5 pour 32 couleurs
coeff 6 pour 64 et 4096 couleurs.

Malheureusement je ne peux pas pas avec l'amos utiliser le chipset Aga qui me permet d'afficer 256 couleurs.
Bon dans l'exemple utilisé par la vidéo j'ai dit ouvrir une fenêtre de 640 par 512 et en 16 couleurs. (Coeff 4)
CE qui fait qu'il y a 163,84 Ko d'utiliser rien que pour l'ouverture de la fenêtre.
L'amiga 500 c'est 512ko de mémoire dans le corps. Un 600 c'est 1Mo et un 1200 c'est 2 Mo

Aller allons plus lointain dans nos calcules.
La taille de nos map font 50 cases sur 50. Ce qui fait de bonne map. Pour afficher une fenêtre qui accueil ça il faut multilier les tiles par 16, soit une taille de 800 sur 800. C'est beaucoup plus grand que mon test.
Ce qui fait 320ko de mémoire de manger rien que pour afficher une map ! Je ne dois plus avoir une grande marge de manœuvre sur A500.

L'amiga permet d'afficher 32 couleurs mais la ça donnerais 400Ko de mémoire pour la fenêtre, le 500 est au choux !
Cela reste acceptable sur 1200 avec ses 2Mo. Mais je pourrais pas vraiment faire tourner le jeu sur d'autre bécane.

Trouver peut être un autre moyen de faire du "scrolling" !
J'ai peut être une idée à mettre en oeuvre.
Ouvrir une fenêtre avec juste un carreau de chaque coté. Déplacer le plans une fois le plan déplacé, afficher les nouveaux tiles dans la zone caché qui n'en n'a plus.

Si la technique est bonne pour du 320/240px 16 couleur qui donne 38.4Ko de base ça ferrais une fenêtre de 352*272 soit 47,872 ko.
A tester donc surtout en amos on a une fonction qui permet de déplacer les graphismes. A voir si les sprites suivent.
C'est partie pour une semaine de test !

Edit du 31 janvier
Pas grand chose à ce mettre sous le dentier xd maladie, puis à faire mumuse avec ma nouvelle voiture...
Ceci dit je me suis penché sur un problème de disquette pour mon amstrad.

J'ai expliqué plus haut je crois que mon Pc actuel n'avais plus de port Floppy pour formater et préparer des disquettes pour mon amstrad et mon Amiga car il faut les formater en 720Ko, et problème les lecteur USB ne le permette pas pour divers raison.
Ceci dit j'ai trouvé un tuto pour le faire sur mon amiga en lui même et pouvoir copier des fichier image en format DSK, sur des vrais disquettes trois pouce et demis, et ça marche. L'inverse aussi créer des images dsk (non pas troskan pfffffff) à partir d'une vrais disquette est réalisable. Mon Amstrad 6128 équipé d'un lecteur 3 pouce et demis redevient utilisable \o/

Je vais pouvoir me remettre un peu à l'assembleur du Z80.

Mais DSK c'est quoi ? C'est quoi une image ?
Pour faire simple c'est une copie image exacte d'un support. Le format de l'amstrad et le .dsk
L'Amiga c'est des .ADF
Il existe aussi des formats pour le support cassette, et tous les micros ordinateurs de toute façon.

Sinon j'ai commandé pour l'amiga, L'amos 3d en occasion sur Ebay. Normalement le manuel et dedans. Oui l'amiga fait de la 3d. L'amstrad aussi d'ailleur.

Signer du nez ?


Monos - posté le 29/02/2016 à 07:36:48 (57322 messages postés)

❤ 0

Vive le homebrew

Le Processeur!
Coucou, voici un petit pitch sur les procos !!!
Alors c'est quoi c'est un processeur ? C'est le coeur d'une machine électronique. (Console,Ordinateur…) C'est lui qui va travailler, et organiser tous le bousin. A l'heure actuel au moment ou j'écris ses lignes, le proco est en mode, 'bon je récupère la valeur de la touche que monos est entrain d'utiliser, je la stocke ici, après cette valeur envoyer que l’envoie ici….
Puis il ne fait pas que ça, un bon vrais petit esclave qui bosse bien, mieux que les chinois à nonor sur Aëdemphia…

Bon sérieusement, oui le proco est un des organes les plus important d'un pc ou d'une console de jeu.(qui sont maintenant des pc avec moins de possibilité mais passons)

Il y a quoi dans un processeur ? Comment il fonctionne ? Pour répondre un peu a cette question je vais parler d'un vieux processeur dit 8bits, Le Z80 ! Et beaucoup d'entre vous avez eu affaire à ce processeur ! Il équipe des vieux micros comme l'amstrad, et le standard MSX, au niveau console je peux en cité 4 de mémoire, La Master Système de chez Séga, La Mégadrive de Chez séga. (C'était é la pour la rétrocompatibilité et pour manipuler le chipet musical), la Game Gear de chez Séga et Nintendo utilise une version lite pour sa Game Boy !

Bon un processeur possède de la mémoire internet. Limité  sur un système 8 bits mais très rapide. Nous les appelons les registres.
Le Z80 possède donc des registres dit 8 Bits nommé arbitrairement.
A,B,C,D,E,F,H,L
Chacune de ses 8 huits registres peuvent mémoriser un valeur entre 0 et 255. (1 Octet donc)
Le Registre A est ce que nous appelons l'accumulateur. Il est reliés de telle sorte que sur certaine instruction, on passe par lui pour gagner de la rapidité, et de la mémoire. (Souvent tout ce qui touche au calcule)
Le Registre F est le registre des Drapeaux. (Flags) il sert à mémoriser des tas de choses, comme une retenue, ou si A est égale à 0…

Sur le Z80 on peux combiner par paire les registres. Le registre H et L sont souvent regroupés pour travailler avec des Adresses mémoires. (Ah j'ai perdu du monde la, je reviendrais dessus)

Le Z80 possède aussi des registres dit 16 bits. Qui permet donc de mémoriser une valeur en 0 et 65535

Nous avons dans ce domaine le registre PC qui lui permet donc de retenir la prochaine adresse mémoire à lire. (Le registre PC s’agrémente de 1 à chaque fois qu'il est sollicité) , le registre SP qui est le pointeur de pile. (La j'ai encore perdu du monde, En gros c'est une valeur qui est l'adresse mémoire qui contient elle même une adresse mémoire bon oublions) et deux autres registre 16 bits nommé IX et IY qui est utilisé dans des instructions du proco (instruction ? Oué je vais en parler)

Voici en gros ce que possède le proco Z80 en mémoire.

Un deuxième processeur 8 bits fut souvent utilisé par le passé.
Le Motoral 6502. Proco du C64, de la nes (avec modification)
Ceci dit je ne le connais pas vraiment.

Je parlais des adresses mémoire. C'est quoi une adresse mémoire ? C'est simple c'est une valeur qui permet d'identifier une case mémoire de votre ordinateur et chaque case mémoire c'est un octet. (8 bits, une valeur entre 0 et 255)
Donc un pc avec 4Go, ba c'est 4 000 000 000 de cases environs avec chacun un numéros.
Donc votre proco va aller déposer des valeurs , ou l'inverse les lires. C'est ce que nous appelons l'adressage de mémoire.

Petit information on dit souvent qu'un proco 32 bits ne peux pas utiliser plus de 4Go pourquoi ?
Voici une supposition « Windows 32 » ne peux manipuler au maximum des valeurs comme son nom l'indique de 32 bits. (On peux foutre Windows 32 sur un proco 64 bits donc la c'est le logiciel qui bride) la valeur maximum de 32 bits est 4 294 967 295
Voilà pourquoi cette limitation. Encore un petit truc, c'est la limite que windows 32 peux travailler en « même  temps ». Il existe des bidouilles qui permet de sauter cette limite en switchant une partie de la mémoire par une autre !!! (La mémoire Paginé)

Maintenant passons sur 8bits. Qu'elle est la mémoire maximum disponible sur un proco 8 bits ? Enfin nous allons parlé du Z80.
256 octet ?
Bien essayé mais non.
Nous avons le registre PC qui permet de mémoriser une adresse mémoire. C'est un registre 16 bits.
Et 16 bits c'est 65535
Donc la mémoire disponibles maximum est de 65 355 octet. Sois 64k dans le langage que nous utilisons le plus souvent.

Ceci dit comme pour windows on peux tricher et échanger des morceaux de la ram par d'autre. Ce que l'amstrad CPC 6128 fait avec ses 128ko de mémoire vive.

Bon plus haut j'ai parlé d'instruction !
Le processeur c'est con, il ne connais que deux chiffre. 0 ou 1. Ouvert ou Fermé.  On ou OFF. Courant ou pas de Courant ! C'est le système Binaire. Et sur Rpg Maker vous l'utilisez souvent avec les interrupteurs par exemple. Votre ordinateur, c'est continuellement.

Alors concrètement comment ça fonctionne ?
C'est simple, si je vous dit : Et toi mec tu vas aller de l'autre coté de la falaise, une fois en place, si je lève mon bras, tu lances une pierre. Sinon tu ne fais rien. L'exemple est con je veux bien l'avoué.
La on a donc deux situations, soit il ne fait rien, soit j'ordonne à mon ami de jeter une pierre.
Ceci dit seulement deux actions c'est mince. Je vais chercher un ami qui a coté de moi va aussi lever ou pas son bras avec moi. On passe donc à 4 ordres possible à donner à mon copain de l'autre coté de la falaise. Et si je veux continuer à ajouter à mon catalogue plus d'ordre, j'ajoute un 4em gus à coté moi, voir plus. Voyons nous sommes 8. Ce qui nous donnes 256 possibilités d'ordre codé sur un bras non levé (0) ou un bras levé (1)

Le proco c'est la même chose. Enfin presque car lui c'est pas des Bras que nous levons xd mais on lui injecte des 0 et des 1. Chaque groupes de 8 chiffres dans une case mémoire (1 octet donc) est potentiellement une instruction. (Ou un départ d'instruction car sur certain ordre, il faut plusieurs octet ce qui augmente le nombre d'instruction potentiellement connus du proco)

Le proco va lire le contenue du registre PC qui est une adresse mémoire, va aller chercher la valeur contenue à cette adresse, va incrémenter de 1 le PC, va déchiffrer l'ordre et ensuite l’exécuté !

Exemple dans PC il y a l'adresse 3000.
Dans 3000, la valeur est 4. Il décrypte et pour le Z80, il sait qu'il doit ajouter 1 à la valeur contenue dans le registre A. (Véridique)

Par contre sur un autre processeur c'est peut être l'inverse. Il faut retirer 1 à la valeur contenue de son accumulateur ou je ne sais pas quoi.

Ceci est le langage Machine ! Le pure langage machine ou chaque octet est une instruction que le processeur peut comprendre… Et chaque processeur à son propre langage ou presque car il existe des familles qui partage des instructions pour être compatible. C'est le cas des « X86 » ou la base est le même langage mais suivant les procos (Intel,AMD, et leurs différente Famille I7, Pentium …)
possèdé des instruction en plus ou différent.

Oué mais programmer en 0 et en 1 c'est pas top heins ! Risque d'erreur, et tout ça.
C'est vrais. Et c'est pour ça que l'homme s'est simplifier la vie et qu'il a créer ce que nous appelons le langage « assembleur » .

Ajouter 1 à la valeur contenue dans le registre A ! Dans un assembleur Z80 on pourra écrire
Inc A

On lance la compilation, le programme va voir inc A et va remplacer tout ça par 4
(A vrais dire il va remplacer ça par 00000011 système binaire !!!)

Et peux importe de toute façon le langage utilisé c'est la même chose. En C quand on compile à la fin ce sont des 0 et des 1 compréhensible par le processeur !

Et les langages interprété , (Java?) C'est pareil. Interpréteur va lire l'instruction, et le transformer en binaire pour que la machine puisse comprendre. (C'est plus lent que compiler même si sur nos proco actuel, c'est moins flagrant à voir)

Mais le proco ne sais pas simplement ajouter 1 à un registre ? On serais dans le caca si il y avait que ça…
Bien sur que non. Il y a beaucoup d'instruction, même dans un proco 8 bits.
Le Z80 permet de transférer la valeur contenue dans un registre dans une case mémoire, faire l'inverse. Faire des additions, des soustractions. (Mais le z80 ne sais pas multiplier par exemple il faut écrire la « fonction », faire des boucle, sauter dans une autre case mémoire, tester un bit contenue dans une case mémoire, faire des rotations de valeurs, ajouter une valeur sur la pile, Modifier A par la valeur contenue dans l'adresse mémoire pointé par le double registre HL (les pointeurssssssss)

Un programme informatique c'est que ça. Déplacement de mémoire.

Décryptage d'un programme Assembleur du Z80
Même pour un proco, il existe plusieurs logiciel d'assembleur. Il existe même des assembleurs pour « compiler » sur une machine A et que cela tourne sur une machine B. (Cross Dev)

image
Voici un vieux test que j'ai fais il y a plus d'un an. De mémoire et en fonction de mes notes cela permet de faire avancer des battlecharset réalisé en lettre qui ont était redéfini.

image
L'assembleur que j'ai utilisé demande que chaque ligne soit numéroté comme les anciens basics. D'autre assembleur ne demande pas ça. C'est le premier que j'avais utilité donc je n'ai pas cherché plus loins.

Ligne 10 :
Org &A000
Ceci n'est pas du « code machine » c'est une information qui dit que le programme sera stocké à la case mémoire &A000
&A000 c'est une valeur Hexadécimale. Plus facile à lire que des bits.

20 LD A,0
C'est une ligne qui sera transformer en bits ! LD veux dire pour cette assembleur (et les Z80) Charger. (Load => LD), A c'est le registre de l'accumulateur, et 0 c'est la valeur à placer dans le registre A. Sur d'autre proco le cela ne sera pas LD mais Move. ET A peut être représenter par R1 par exemple.
Bon donc la A = 0

30 LD BC,0
Comme la ligne 20, on réunis les deux registre BC et on injecte 0.

40 LD L,(IX )
C'est intéressant ça. IX est entre parenthèse donc c'est un pointeur.
Le registre IX contient une Adresse mémoire. On donc aller à cette adresse mémoire, prendre ça valeur et la charger dans L !

La ligne 50 fait pareil avec H sauf que nous allons chercher à une adresse plus loin que celui contenue dans IX (IX+1)

Concrètement sur ses deux instructions, j'ai du en appelant le programme machine envoyé une valeurs qui s'est logé dans IX pour la ressortir et la travailler ici.

60 BOUCLE. ADD HL,BC
Une belle ligne. BOUCLE. Est une étiquette. ADD HL,BC c'est une adition.
On ajoute à HL le contenue de BC donc la à l'heure actuel on fait HL+0
HL est la réunion des deux registre H et L pour former un registre 16 bit !

70 LD D,H
Simple à comprendre on place le contenue de H dans le registre D
80 LD E,L
Pareil on place le contenue de L dans E

90 LD BC,8
On place la valeur 8 dans le double registre BC.

100 SBC HL,BC
HL=HL-BC donc une soustraction.

110 LDIR
LDIR est tout simplement une commande pour déplacer plusieurs case mémoires consécutive dans un autre bloc.
On regarde le contenue de HL qui est une adresse, on regarde aussi DE qui est une adresse aussi. On va chercher la valeur à l'adresse pointé par HL, et on la place dans la case mémoire pointé par DE. Ensuite cette commande agrémente de 1 l'adresse contenue dans DE et HL et on décrémente de 1 la valeur contenue dans BC. On continue l’opération jusque que BC=0 Et bomme dans cette exemple BC vaut 8, on fait ça 8 fois.

120 Ld BC,2048
On mémorise dans BC, la valeur 2048 qui correspond à un saut ligne sur l'asmtrad, j'en parlerais plus tard.

130 INC A
On incrémente A
140 CP 8
CP c'est un Test. La on test si A = 8. Si c'est le cas dans le registre F un petit bit se mettre à 1 (je simfplifie

150 NZ,BOUCLE
Si le teste de la ligne 150 est faux on retourne à l'étiquette Boucle (donc on fait ça 8 fois aussi pour 8 lignes)

160 Ret
Retour ! En gros le programme assembleur redonne la main dans l'exemple au programma Basic de l'amstrad.


Voici un petit exemple qui permet donc de déplacer un personnages montrés sur la capture plus haut.

Le langage machine est pratiquement obligatoire sur les vieux ordinateurs, et console pour tirer parti de la puissance des machines surtout au niveau graphismes. Les vieux ordis fut souvent équipé du langage Basic en interprété et la la lenteur se fait sentir considérablement même si il est possible de créer des jeux en 100 % Basic.

Connaître le langage d'un proco n'est pas suffisant pour programmer. Il faut connaître la machine aussi. L'Amstrad et la/le Game Boy possède le même langage mais par la même architecture.
Injecter ce bout de programme dans la game boy aura très certainement d'autre effet que de déplacer 8 lignes verticales sur X pixels à gauche même si le proco va savoir décrypter tout ça.

Le potentiel problème de l'assembleur (et donc du langage machine) c'est qu'il est très peux portable. Plus facile sur les même proco mais quand on change proco c'est terminer !

Pour cela que des langages t'elle que le C par exemple existe par exemple. Beaucoup plus facile pour le programmeur de porter son programme. Enfin presque.


Voilà, c'était un petit paragraphe sur le proco et un le Z80. J'ai simplifié des choses, un peu abus de langage. Le prochain pavé si il y a toujours des lecteurs qui veulent bien (ça c'est pas sur) c'est la présentation de « L'Amstrad » et un peu de son Hadware.

Voilou.

Signer du nez ?

Index du forum > Vos créations > Rétro Making

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers