Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Connexion avec identifiant, mot de passe et durée de la session

+-Merci d'utiliser le forum pour les demandes d'aides sur fusion.

18 juillet 2018 à 22:02:13 Cyberclic dit: Merci mon Monos. J'ai hâte de devenir riche avec la pub que tu vas me faire avec le comptoir :D
18 juillet 2018 à 17:46:33 Monos dit: Bonjour.
J'ai bien reçu les nouvelles fiches de jeu de Yazo et cyber je crois, je vais les intégrer ce week end.  Il était foutu dans mes dossiers indésirables.
18 juillet 2018 à 15:59:09 djyo4891 dit: bonjour à tous!
17 juillet 2018 à 17:54:18 lazarus dit: Ha,je préfere ca,j'ai cru que leur site avait un probleme
Sinon j'adore archive.org,c'est une vrai mine d'or.
17 juillet 2018 à 16:32:57 Patrice dit: Allez, bonne soirée : https://archive.org/details/internetarcade?&sort=-downloads&page=2
17 juillet 2018 à 15:20:18 Patrice dit: Maintenance
17 juillet 2018 à 14:44:54 lazarus dit: Plus d'accès au forum clickteam ni au clickstore depuis ce matin!!!
16 juillet 2018 à 21:19:50 lazarus dit: D'autant plus que c'est sur un site anglophone qui est relativement lu,donc c'est de la très bonne pub.
16 juillet 2018 à 19:54:51 Monos dit: Cela fait plaisir de voir ça. D'être newsez et partager. Bravos à Capitaine aussi car c'est aussi son bébé.
16 juillet 2018 à 19:45:45 Monos dit: Oh putain lazarus j'ai loupé ça. xd
16 juillet 2018 à 18:48:10 graboide dit: Je vois pas ce qui ça a de cool de gagner c est pas nous qui avons gagné c est l équipe de foot, c est eux qui a récolté la tune, moi perso ma vie va pas changer d un poil donc bon tant mieux ils on gagné mais pas de quoi hurler de joie, il y a en ils sont plus heureux qu à la naissance de leur gosse c est vraiment barge je trouve .
16 juillet 2018 à 17:25:02 lazarus dit: http://www.indieretronews.com/2018/07/prisonnier-ii-new-game-for-sega-master.html
16 juillet 2018 à 17:18:35 conceptgame dit: Par chez moi, ils étaient pour la Croati. J'ai bien dormi. :)
16 juillet 2018 à 12:26:47 Pit73 dit: Pour un ballon c est de circonstance !! :) >> je sors
16 juillet 2018 à 09:16:40 lazarus dit: Oui ça par contre,ça m'a un peu gonflé aussi.
16 juillet 2018 à 08:39:10 Seyjin dit: Perso, j’ai trouvé les klaxons jusqu’à 1h moins fun.
15 juillet 2018 à 22:43:42 conceptgame dit: Bravo les bleus ! @
15 juillet 2018 à 21:20:41 lazarus dit: Quel Match mes amis,quel match!!!!
15 juillet 2018 à 20:03:17 Cyberclic dit: CHAMPIONS DU MONDE LES GARS !!!
15 juillet 2018 à 10:47:39 lazarus dit: En route pour la final!!!!
15 juillet 2018 à 10:45:47 Cyberclic dit: Allez les bleus :)
15 juillet 2018 à 05:27:52 Pit73 dit: Oh ! Trop bien !!
14 juillet 2018 à 19:24:13 Monos dit: Un wonder Boy Like de toute beauté fait avec fusion !
14 juillet 2018 à 19:23:53 Monos dit: https://store.steampowered.com/app/717310/Aggelos/
27 juin 2018 à 17:14:59 Patrice dit: http://cavindave.clickteam.com/
Voir l'historique

UserBox

Welcome, Guest.
Please login or register.
 
 
 
Mot de passe oublié?

Bientôt

Surprise

Liens

Messages non lus

Télécharger

Divers

Twitter

Les extensions pour MMF2

FaceBook ClickTeam France

Derniers messages

Re : Suggestions pour améliorer le comptoir par Nathanic89
20 juillet 2018 à 14:13:36

Re : [Projet] [Version Fusion 2.5] Sonic Triped par Nathanic89
20 juillet 2018 à 14:11:59

Re : [Projet] [Version Fusion 2.5] Sonic Triped par Nathanic89
20 juillet 2018 à 14:09:44

Re : Kitrinos : Inside the Cube par Emmanuel
20 juillet 2018 à 13:23:46

Re : Suggestions pour améliorer le comptoir par Emmanuel
20 juillet 2018 à 13:19:00

Re : Programmer les consoles rétro. par Emmanuel
20 juillet 2018 à 13:16:11

Re : [Projet] [Version Fusion 2.5] Sonic Triped par Emmanuel
20 juillet 2018 à 13:15:41

Re : [Projet] [Version Fusion 2.5] Sonic Triped par Nathanic89
20 juillet 2018 à 08:43:19

Re : [Projet] [Version Fusion 2.5] Sonic Triped par Seyjin
20 juillet 2018 à 08:27:50

Re : Programmer les consoles rétro. par Monos
20 juillet 2018 à 06:27:13

[Projet] [Version Fusion 2.5] Sonic Triped par Nathanic89
19 juillet 2018 à 21:01:30

Re : Suggestions pour améliorer le comptoir par Nathanic89
19 juillet 2018 à 07:17:09

Re : Suggestions pour améliorer le comptoir par ValLoche23
19 juillet 2018 à 04:46:21

Re : Suggestions pour améliorer le comptoir par Patrice
19 juillet 2018 à 04:21:36

Re : Suggestions pour améliorer le comptoir par Nathanic89
18 juillet 2018 à 21:31:29

Re : creation de logiciel de gestion d'un port de plaisance par djyo4891
18 juillet 2018 à 20:06:59

Re : creation de logiciel de gestion d'un port de plaisance par Cyberclic
18 juillet 2018 à 17:31:50

Re : Kitrinos : Inside the Cube par Yazorius
18 juillet 2018 à 16:43:54

Re : creation de logiciel de gestion d'un port de plaisance par Patrice
18 juillet 2018 à 16:07:00

creation de logiciel de gestion d'un port de plaisance par djyo4891
18 juillet 2018 à 15:56:19

Nouveau Clickeur

djyo4891
AimvenDragtow
slyme_QC

Membre en ligne

24 Invités, 0 Utilisateurs

Auteur Sujet: Programmer les consoles rétro.  (Lu 4362 fois)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #45 le: 05 août 2017 à 04:46:25 »
Chapitre 15 :  Constante et Gosub


Une constante
Oué encore un chapitre qui n'est pas vraiment lié à la mégadrive. Mais bon, c'est important aussi. Nous allons parler des constantes dans le logiciel second basic. Un truc qui peut simplifier la vie.

Alors nous allons prendre un exemple concret encore une fois tiré de notre programme moteur de déplacement case par case !

Nous s'avons que tiles de mur se trouve à la position 259 de la vidéo ram !
Donc à chaque fois que nous voulons jouer avec un mur, il faut inscrire 259. C'est lourding non ?  Il y a une première possibilité, c'est de mémoriser 259 dans une variable et appeler simplement la variable mur qui va ressortir la valeur 259 dans le Drawtile par exemple. Sauf que ba voila c'est de nouveau 2 octets de mangé ! Alors sur un petit programme comme ça ce n'est pas bien grave. Mais quand  vous voulez faire un gros jeu, il se peut que vous allez avoir besoin de place ! Et c'est la que les constantes entre en jeu les amis !

Const #nom = valeurOn déclare une constante.
Const #mur = 259
Et dans notre drawtiles
DrawTilesInc #mur,x*2,y*2,2,2
Que ce passe t'il ? A la compilation, le compilateur va tous simplement remplacer les #mur par 259 ! #mur n'est pas une "variable" donc ne mange pas les 2 ou 4 octets ! C'est un travaille du compilo !

Elle n'est pas belle la vie ?

Goto et Gosub !
Nous allons remonter le temps, quoi c'est pas déjà fait ! Voici un petit article culture général du basic j'ai envie de dire et je vous présente deux vielles commande en basic qui fonctionne bien sur sur Second Basic, mais qui honétement sont à éviter le plus possible maintenant.  Je vous présente GOTO et GOSUB !

Débutons avec GOTO
QUand le le programme rencontre Goto + étiquette ,  il va se connecter à l'étiquette en question.  Exemple :

Print "Chat"
Goto E_1
Print "Chien"
E_1:
Print "Oiseau"
Print "éléphant"

La chat est affiché à l'écran
Il rencontre Goto E_ on saute à E_1
Oiseau est affiché et le programme continue.

Mais le truc c'est avec goto, c'est du programme dit spaghetti ! Le code n'est pas trés bien organisé. Bref à éviter le maximum.

Gosub
C'est gosub c'est mieux, c'est comme les procédures et les fonctions, cela permet de découper son programme.

Print "Nemau veux programmer sur la game boy"
Gosub E_1
Print "Les ombres d'Aëdemphia ne sont pas réalistes"
End

E_1:
Print "Nous sommes dans une sous routine"
Return

Le code va afficher le premier text ! Ensuite rencontre un gosub et va dont en E_1 pour travailler le code en affichant :Nous sommes dans une sous routine. Une fois qu'il rencontre Return, il retourne au programme principale et continue sa route ! Affiche Les ombres d'Aëdemphia ne sont pas réalistes.

Il peut y avoir plusieurs Sous routine "Gosub" imbriqué mais il faut bien penser à finir avec un return.

Ceci dit maintenant avec les procédures et les fonctions, les gosub ne serve plus à grand chose. Mais cela reste votre choix de codage.
L'avantage de travailler avec que des Gosub, c'est de ne pas avoir besoin de déclarer les variables globals. Le désavantage c'est de ne pas vraiment pouvoir faire passer des paramètres et jouer de nouveau avec des tonnes de variables à en perdre son assembleur ! Bref un choix personnelle de comment coder votre jeu !

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #46 le: 05 août 2017 à 04:48:20 »
J'attend de l'aide pour installer le SDK de la colecovision ! Je partagerais ma connaissance sur ça aussi.
J'ai des outils aussi à créer avec fusion pour encoder des graphismes sur megadrive (ou autre)

j'ai du déja en parler mais ce qui est cool c'est du moins sur mégadrive,  il n'y pas de formule mathématique à la con pour la représation des graphismes comme sur amstrad ou c'est à se tirer les cheveux xd

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #47 le: 06 août 2017 à 04:12:19 »
Pal et NTSC
Aller, on va toucher à un truc sensible... Il y a des jeux PAL et des jeux NTSC et quand c'est bien fait, les jeux peuvent d'adapter au deux format !

C'est quoi Pal et NTSC au faite ?

PAL c'est Phase Alternating Line. C'est un mode d'affichage d'écran, et nous en France quand on acheté une console rétro c'était des consoles en format PAL. Elles affichaient pour faire simple, 50 images par seconde.  (50hz)

Dans beaucoup d'autre pay, c'était le format NTSC National Television System Committee. Ce mode affiche 60 images par seconde (60hz) (USA-JAP)

Les jeux NTSC sont réputés pour tourner "plus vite" que les jeux pal. Sur Sonic mégadrive, la version NTSC du jeu est bien plus rapide que notre version pal de chez nous (en france).

La mégadrive peut être Switcher pour passer en NTSC/PAL avec du bricolage comme pas mal de console...

Le format PAL/NTSC n'influe pas seulement sur le "nombre" d'image d'affichable à l'écran. Il influe aussi sur le nombre de ligne possible à affichable sur l'écran.

Un petit tour dans la définition des écrans tien :
Le nombre de tiles affichable à l'écran latéralement est de 40 en mode native de second basic.
Un tile c'est 8 points sur 8. Donc 40*8 = 320 points.

En hauteur, ba la ca va dépend si vous êtes en PAL ou en NTSC et pour changer le mode c'est la commande
TVset 0
-pour NTSC (Réglage native) et
TVset 1
-pour du pal.


En mode 0 donc NTSC vous pouvez afficher à l'écran 28 Tiles de 8*8 points.
Soit une définition de 28*8=224 points

ET en mode PAL vous pouvez afficher à l'écran 2 tiles de plus. Soit 16 points de plus ce qui fait 240 points.

Donc la  définition d'écran est de : 320*224 en NTSC et 320*240 en PAL.
 
C'est pour ça que sur beaucoup de jeu chez nous en France ce n'est pas vraiment du pleine écran et qu'il y a des bandes noirs ! Les développeurs utilisent la plus petite résolution pour que cela passe partout en gros.  (A moins d'avoir une TV en 60hz compatible NTSC ah ah)

Mode 32 tiles en latéral
Il est possible de faire du  256*224 en NTSC et 256*240 en pal. Ce qui permet d'afficher 32 tiles au lieu de 40.
Pour cela la commande est
VidMode, Vid32CellVidMode, Vid40Cellpour 32 / 40 tiles.

Pourquoi passer en 32 tiles ? (soit 16 tiles de 16*16pts) pour peut être mieux gérer les scrolling. Car quand on parle d'affichage à l'écran c'est belle et bien le nombre de point/tiles que le joueur peut voir à l'écran. La mégadrive permet d'afficher des tiles, et des sprites Hors écran ! Mais ça on verra tout ça dans un autre article ! Cela devient cool non ?
ah ah.

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #48 le: 07 août 2017 à 04:26:23 »
Sega Genesi Tile Designer

A l'heure actuel nous avons photoshop, Gimp, Paint.Net (je parle bien du point net), Photofiltre, et d'autre logiciel pour créer des graphismes 2d.

Nous avons vu que sur mégadrive, il faut encoder ses graphismes en une suite de valeur hexadécimal qui appelle un index de couleur.

Exemple $1051F059
qui veux dire ! Couleur 1, Couleur transparente, Couleur 5...
Un morceau de graphismes c'est une Tiles de 8 pixel horizontal,, et 8 pixel vertical. Nous avons des commandes pour poser plusieurs tiles sur la map en même temps pour nous simplifier la vie ! Les sprites sont aussi des tiré de la bank de sper heu sprite pardon.  Jusque la nous encodons à la main tous ça pour "apprendre" la base ! Mais il existe des logiciels pour nous simplifier la vie. (Voous vous voyez utiliser paint tous le temps vous alors qu'il existe des logiciels avec des calques, des grilles pour poser votre pixel, des outils plus adapté ?) Bas sur  megadrive c'est pareil. Le logiciel ce nomme Saga Genesis Tile Designer !!!

Lien
Je vais vous faire un petit tour du proprio.




Voici la gueule du bignouf !


Nous allons débuter avec la barre des menus du haut.


Cette option permet d'avoir un nouveau fichier. Attention ça efface complètement le travaille en cour sans prévenir. (ça c'est carrément con !)

ouvrir un fichier qui a était enregistré en .txt. C'est pour retrouvé votre travaille.

Pour sauvegarder votre fichier en .txt
Pour ne pas perdre votre travaille.


Exporter vos tiles ! (Flèche en bas)
Cela permet d'exporter votre travaille pour votre logiciel de codage. Nous allons y revenir plus tard !


La c'est pour importer les donnés data dans le logiciel en question.


Activer ou désactiver la Grille visuel ! C'est pratique les gens !


Niveau de Zoom, hey hey. Attention en mono tiles il y a une limitation de zoom minimum.


Paramétrage du nombre de tiles latérale. (1 à 8 tiles)
Cela évite de créer vos sprites ou décors qui doit faire plus d'un tiles, (8*8px) sur un morceau de tiles.

Nativement c'est paramétré sur 2.


Cette fois si c'est Verticalement !


Cette option permet d'ouvrir le menu de la gestion des palettes de couleur.


Cette option permet d'ajouter un nouveau doccument vide en dessous du tiles séléctionné. (Il ne se places pas à la fin !)


Cette fois si c'est au dessus !!!


Pour effacer le tiles selectionné.


Pour copier le tiles en mémoire.


Pour coller le tiles en mémoire dans un autre "document" du logiciel.

(Le copie/colle ne fonctionne que pour ce logiciel)

Voyons la barre de gauche.


Le Crayon, pour poser votre morceau de pixel


La pipette, pour mesurer votre taux d'alcool dans le sang en programmant.... Non c'est pour sélectionner une couleur dans le document.


Pot de peinture, pour remplacer des pixels qui se touche et de même couleur, par une autre que vous avez choisis dans l'index !


Aucune idée semble ne pas fonctionner.


Pour déplacer le tiles d'un pixel à Droite/Gauche/Haut/bas. Pratique ça.


Pour faire une rotation du tiles de 90 degrés à droite. (1/4 de tour quoi)


Retourner le tiles par apport à un axe verticale. (Le coté droit, se retrouve à gauche pour faire simple)


Retourne le tiles par apport à un axe Horizontale. (Le coté Haut se retrouve en bas !)


En bas, vous avez le nuancier des couleurs. Les deux petites flèches au dessus de palette 0 permet de choisir une autre palette. -Entre 0 et 3)

Pour sélectionner une teinte, c'est simple vous cliquez sur le nuancier avec la sourie ! Vous pouvez mémoriser trois couleurs avec la sourie !
Bouton Gauche : L
Bouton Droite : R
Bouton du milieu : M

Pratique non ?


Voici la fenêtre de l'éditeur de palette.
Pour le môment vous avez les 16 mêmes teintes qui se répettes sur les 4 palettes.

Les lignes 00 (palette 0)
à 30 (palette 3)
Puis les couleurs de 0 à F.

En bas vous avez trois curseur ! Red (rouge) Green (Vert) Blue(Bleu.)
Vous pouvez créer votre teinte avec les trois curseurs après avoir selectionner un emplacement plus haut !

RGB c'est le code couleur au format 24 bits
et Sega Code c'est le code couleur pour la mégadrive. (Le blan pure FF-FF-FF en 24bits c'est encodé 0EEE)
Il n'y a que 512 teintes possible sur la mégadrive !

Export Palette c'est pour exporter facilement vos palettes de couleur. Mais ne pas utilisé cooome ça, il faut valider vos modifications avec ok. Sinon en exportant ça ne prendra pas en compte les nouvelles modifications.


la zone d'exportation.
Vous pouvez exporter dans plusieurs format :
-En Basic qui vous donne comme dans la capture d'écran le code à copier/coller dans l'ide
-Exporter en fichier binaire (ça c'est cool j'en parlerais dans une autre leçon)
-En assembleur. (Même idée qu'en basic)
-En C (Même idée qu'en basic)
-En Kenedaa's MMM (dont je ne sais pas c'est quoi comme format)

Vous pouvez sélectionner le tiles de départ de fin.

D'abord il faut générer les data et enfin exporter en fichier ou / et faire un copier/coller du listing proposé.

C'est la même chose avec l'exportation de palette !


Voici la fenêtre d'import vous pouvez importer l'exportation de la Ram Vidéo faite avec l'emutateur Gens Kmod
Vous pouvez faire la même chose avec la CRAM (Les palettes de couleurs)

Vous pouvez importer un fichier binaire dédié pour les tiles et la palettes.

Il y a une option Swap Bytes à cocher ou pas :
Et trois options lié au tiles :

Sprites Orientation : Pour calquer ça sur les sprites  (Sur un sprites de 4 tiles, (2*2) c'est Haut-Gauche / Bas Gauche / Haut-droite / Bas-Droite

Start Offet :
Number of 8*8 Tiles.. Nombre de tiles à importer.

Nous avons fait le tour du log. Une démo d'exportation d'un tiles !

Voici un "tiles" que j'ai fais en toute simplification.


Avec l'exportation en Data basic j'ai cette cette suite donc je place une étiquette til.

  til:

        DATALONG $11111111 '  Tile: 0
DATALONG $11132112
DATALONG $13322212
DATALONG $31333333
DATALONG $11113333
DATALONG $11133333
DATALONG $11133333
DATALONG $11133335
DATALONG $11133356 '  Tile: 1
DATALONG $11333836
DATALONG $11333896
DATALONG $11333856
DATALONG $11333366
DATALONG $113A3322
DATALONG $13AB3362
DATALONG $C3DE33F6
DATALONG $23111111 '  Tile: 2
DATALONG $22111231
DATALONG $24222333
DATALONG $33211113
DATALONG $33331111
DATALONG $33333111
DATALONG $33333311
DATALONG $53333111
DATALONG $65733711 '  Tile: 3
DATALONG $63873711
DATALONG $89873711
DATALONG $88817111
DATALONG $66337311
DATALONG $2233A331
DATALONG $2633BA31
DATALONG $6F33EE43

Je fais pareil avec la palette de couleur :

E_pal:
DataInt $0000,$0000,$0268,$0244,$0422,$048A,$06AC,$0224 '  Pallette: 0
DataInt $08AC,$0A46,$0680,$08A0,$0664,$0C4A,$0C6C,$0C64

J'écris le reste du programme dans SEcond basic.

        Palettes E_pal, 0, 0, 16

LoadTiles til, 4, 300 ' load the tiles starting at 100
DrawTilesInc2 300,0,0,2,2

E_pal:
DataInt $0000,$0000,$0268,$0244,$0422,$048A,$06AC,$0224 '  Pallette: 0
DataInt $08AC,$0A46,$0680,$08A0,$0664,$0C4A,$0C6C,$0C64

til:
DataLong $11111111 '  Tile: 0
DataLong $11132112
DataLong $13322212
DataLong $31333333
DataLong $11113333
DataLong $11133333
DataLong $11133333
DataLong $11133335
DataLong $11133356 '  Tile: 1
DataLong $11333836
DataLong $11333896
DataLong $11333856
DataLong $11333366
DataLong $113A3322
DataLong $13AB3362
DataLong $C3DE33F6
DataLong $23111111 '  Tile: 2
DataLong $22111231
DataLong $24222333
DataLong $33211113
DataLong $33331111
DataLong $33333111
DataLong $33333311
DataLong $53333111
DataLong $65733711 '  Tile: 3
DataLong $63873711
DataLong $89873711
DataLong $88817111
DataLong $66337311
DataLong $2233A331
DataLong $2633BA31
DataLong $6F33EE43



Et voila, le tour est joué.

Note: Une petite nouveauté dans le code source. Depuis le début, je vous avez habitué à utiliser DrawTilesInc.
La il y a un 2 a la fin
DrawTilesInc2

Cela permet de changer le "parterne" d'affichage  d'un tile comme dans un sprite.
sur un tiles de 4 cases, cela fait donc dans l'encodage : Haut Gauche / Bas Gauche / Haut Droite /Bas Droite.
Si on garde le premier Draw tile, le log affichage d'abord les deux tiles de Haut et enfin les deux tiles du bas.
On se retrouve le Bas Gauche à droite du Haut Gauche.

Exemple :


A vous d'harmoniser l'encodage des tiles et / ou de corriger ça dans les datas...
Maintenant vous avez un truc simple pour faire des tiles et des sprites ah ah

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #49 le: 15 août 2017 à 09:36:03 »

un test sur coleco.
Déplacement de perso et projectil + collision.

Bon graphiquement c'est du super proxy mais ça marche.

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #50 le: 30 décembre 2017 à 17:39:50 »
Beaucoup de truc à dire ah ah. Déja depuis ce matin je regarde la master system. Une console de coeur.
J'ai voulu comme ça installer le SDK et paf ! ça marché.

Sega Master System en C
Ce matin j'ai pour le fun voulu installer un SDK pour programmer la master system en C ! L'installation se fait sans douleur ça c'est cool !

Lien du sdk
En gros on télécharge est installe le SDCC si ce n'est pas fait, on télécharge le SDK. on place des DLL dans le SDCC. (ou / et dans le dossier du projet car moi ça fonctionné comme ça). on créer un fichier cmd/bat.

@echo off

sdcc -c -mz80 --peep-file peep-rules.txt main.c
sdcc -o main.ihx -mz80 --no-std-crt0 --data-loc 0xC000 crt0_sms.rel main.rel SMSlib.lib
ihx2sms main.ihx main.sms

echo End post-build
echo ========================================================
pause

Et le tour est pratiquement joué. Dans le lien du SDK le mode d'emplois d'installation est fourni...

Ce matin j'ai donc regardé un peu comment afficher un tiles un sprite et les palettes de couleur car peux importe la machine , avec les commandes (pad) et ses trois trucs il y a souvent que ça vraiment à apprendre au début pour faire un jeu !



Le gros quadrillage c'est des tiles et le carré qui s'en détache c'est le sprite.
Source
Code source en C et le fichier smc pour lire le programme sur un émulateur master system. Le carré se déplace !

La gestion de la mémoire vidéo est un peu bisars. L'encodage linéraire du tiles se fait avec deux couleurs possible sinon c'est  une gymnastique !

un tiles c'est 8 pixels sur 8.
Chaque ligne est encodé sur 4 octets. donc 32 octect par tiles/sprite
(La mémoire vidéo de la ms est de  16ko mais j'ai pas encore regardé / compris la map de la mémoire vidéo)
Une ligne est donc 4 octets. 1 octet c'est 8 bits donc pour chopper l'index de couleur du pixel !

Ligne 1:
Octet 1 : ABCDEFGH
Octet 2 : ABCDEFGH
Octet 3 : ABCDEFGH
Octet 4 : ABCDEFGH

Alors c'est une seul ligne de 8 pixel la.
L'index de couleur du 1er pixel :  Ba c'est la recomposition de tous les bits A de chaque octet !
exemple :
0b 10000000
0b 10000000
0b 10000000
0b 10000000

Le pixel 1 c'est l'index 0x1111  soit l'index 15
Le pixel 2 c'est l'index 0x0000 soit l'index 0

Sur master system il a une palette de 64 couleurs, 4 niveaux de Rouge, 4 niveaux de Vert, 4 niveau de bleu. Et on peux créer deux palettes de couleurs. 16 couleurs pour les tiles, et 16 couleurs pour les sprites. Donc on range touis ça dans des index de 0 à 15  tous simplement.

Contrairement à la nes, la master ne semble pas avoir de contraire du nombre de couleur sur un sprite et un tiles. (A vérifier pour les sprites quand même mais je crois que non).

La nes à plein de contrainte d'affichage...

Au niveau d'affichage de sprite 8*8, la MS ne peut afficher que 8 sprites sur la même ligne, (soit 64px) mais il existe des astuces pour contourner le problème. (Les fameux clignotement de sprite de la nes aussi présent sur ms). Il faut alterner l'affichage des sprites à chaque boucle tout simplement.



Mémoire vidéo Memory map :


$0  :Mémorisation du parterne des tiles soit 256 tiles (0 => 255)
$2000 : Mémorisation du parterne des sprites : 191 sprites (8*8) 256 => 447
$3800 : Affichage écran : 32*28 tiles(8*8px) soit 256*224px
$3F00 : Table des sprites avec position X,Y et index du tiles
$4000 : Fin

Note : Les tiles ne se pose pas au pixel près mais dans un quadrillage comme pratiquement toutes les consoles rétro.

================================================
Sinon sur Megadrive j'avance tranquillement mes test en C avec le SDGK de stef. Scrolling et mapping.
Test de mapping :


C'est super passionnant de s'intéresser à tout ça.

Sur Master System sur beaucoup de jeu, il existe une fine bande à gauche. Ba c'est simple, contrairement en hauteur, il n'y pas de zone qui existe sur le coté dans la master system alors on peux "cacher" une zone à gauche de 8px pour permettre d'afficher des tuiles et créer un scrolling latéralement.

L

Seyjin

  • Staff Technique
  • Clickeur de Légende
  • *
  • Messages: 1067
    • Voir le profil
    • Steam Powered Phénix
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
Re : Re : Programmer les consoles rétro.
« Réponse #51 le: 30 décembre 2017 à 18:05:51 »
Note : Les tiles ne se pose pas au pixel près mais dans un quadrillage comme pratiquement toutes les consoles rétro.
Je crois que dans un autre univers, des gens appellent ça une grille virtuelle  :P

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #52 le: 30 décembre 2017 à 18:45:50 »
Roo chute xd

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #53 le: 31 décembre 2017 à 11:16:42 »
Sur Master System, il faut se taper le makefile à la main pour ajouter les fichier à compiler et à assembler. Je me suis donc fait un utilitaire avec fusion pour ça.


Télécharger


Emmanuel

  • Staff Technique
  • Clickeur de Légende
  • *
  • Messages: 1721
    • Voir le profil
  • Abonnement IOS: Oui
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
  • Firefly: Oui
  • Module Mac: Oui
Re : Programmer les consoles rétro.
« Réponse #54 le: 01 janvier 2018 à 12:07:48 »
Cool monos code encore sous fusion  8)

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #55 le: 01 janvier 2018 à 13:24:09 »
C'est pratique et rapide pour ce genre de truc xd

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #56 le: 03 janvier 2018 à 06:48:28 »
Ce matin avant de partir affronter Carmen dans les vignes, j'ai ajouté des petites tuiles d'une autre couleur autour du pion joueur pour lui indiquer ou il peut se déplacer.

B3 avec la fonction

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #57 le: 14 janvier 2018 à 19:53:46 »
Je pense re faire la programmation de Prisonnier mais en mieux avec les nouvelles connaissances dont je viens d'apprendre ce week end.

Je "participe" a une game Jam sur le site de Gamecodeur (Certain connaisse) Je suis normalement Hors catégorie vu que je n'utilise pas un langage qu'il apprend mais j'osef. Cela me permet d'apprendre plein de truc.


Ce matin j'ai enfin convertie proprement enfin façon de parler une image pc pour l'afficher sur une master system. Prise de tête au début mais rien de sorcier finalement. Il n'y a pas de tuto en Français donc c'est un peu dermerde toi à apprendre à manier en ligne de commande les compilateur, et la gestion de logiciel en fichier bat ! Et oui pas d’interface xd mais finalement on s'en passe facilement. Bon c'est un test mais ça fonctionne !


Un niveau.

Bon n'étant pas un fan de ce jeu, la création de niveau me botte pas du tout. Mais il y a beaucoup de truc à apprendre sur ce genre de projet.

J'ai réunis dans un seul tableau en 1 dimenssions tous les niveaux.

const unsigned char level[] = {


// Level 0
0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,1,2,2,2,2,2,1,0,0,0,0,0,
0,0,0,0,1,6,5,6,5,6,1,0,0,0,0,0,
0,0,0,0,1,5,5,1,5,1,1,0,0,0,0,0,
0,0,1,1,1,5,4,2,5,2,1,0,0,0,0,0,
0,0,1,2,2,5,5,4,3,5,1,0,0,0,0,0,
0,0,1,5,5,5,5,4,5,7,1,0,0,0,0,0,
0,0,1,5,5,5,1,1,5,5,1,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,2,2,2,2,2,2,2,2,2,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,


// Level 1
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,
0,0,0,1,5,5,6,6,6,5,5,1,0,0,0,0,
0,0,0,1,5,5,5,5,5,5,5,1,0,0,0,0,
0,0,0,1,5,5,5,5,5,5,5,1,0,0,0,0,
0,0,0,1,5,5,4,4,4,5,5,1,0,0,0,0,
0,0,0,1,5,5,5,5,5,5,5,1,0,0,0,0,
0,0,0,1,5,5,5,7,5,5,5,1,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,2,2,2,2,2,2,2,2,2,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
....
};






Avec de simple formule on navigue facilement pour retrouver tout ça.  Je n'arrive pas à rendre un tableau en plusieurs dimension en variable global en C. Je ne sais pas pourquoi  ça ne fonctionne pas. Donc bon.

La c'est des constantes, cela veux dire que les suites de valeurs sont enregistré sur la cartouche et n'y bouge pas... Si je place pas le mot clef constante, je crois que le tableau va se charger dans la "Ram" de la console, et la c'est pas trop bon.

Je fais un tableau "buffer" du niveau en cours ce qui me permet de le modifier pour savoir ou se trouve les caisses qui sont bougés...

Bon un case = 1 octet de Data sur la cartouche.. Donc un niveau c'est 16*12 cases.  192 octets par niveau.
Une "cartouche" standard sans banck switching c'est 32ko.
A l'heure actuel je suis à 19348 octets (19-20ko)
Et il y a une petit musique pourrie au début. C'est une avancé de la journée. J'ai réussis à intégrer de la "musique". yeah.

Bref j'avance.


Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #58 le: 18 janvier 2018 à 20:03:53 »
Nom du jeu : Sokoban pour la game Jam 2018 n
Support : Séga Master System
Programmeur : Jean Monos
Graphismes : Jean Monos
Musique et son : Jean Monos.
Moteur : DevkitSMS
Type : Petit Puzzle.
Lien :Lien sur itch.io


Yopla voici un Sokoban sur Sega Master pour la Game Jam de chez Gamecodeur. Enfin je dois être hors concours mais pas grave.



Lien

Le jeu est un proto qui marche sur Master System de chez Sega. Les sources sont dedans.
Codé en C.
Il y a 9 niveaux.

C'est sans  grande prétention mais ça ma permis de voir un peu le DevkitSMS qui est fort sympathique.
Voilou bon test.

Monos

  • Webmaster
  • Pilier légendaire incontournable
  • **
  • Messages: 2577
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Programmer les consoles rétro.
« Réponse #59 le: 06 février 2018 à 09:57:19 »
26 sur 51 pour le soko et la gam jam...

Sinon je suis en train de travailler les graphismes de Prisonnier sur Master System. Je vais re coder le jeu proprement avec les nouvelles connaissance du kitdev.

Pour le moment je fais un travaille graphique sur pc de la zone de jeu.

 


+-MiniChat

18 juillet 2018 à 22:02:13 Cyberclic dit: Merci mon Monos. J'ai hâte de devenir riche avec la pub que tu vas me faire avec le comptoir :D
18 juillet 2018 à 17:46:33 Monos dit: Bonjour.
J'ai bien reçu les nouvelles fiches de jeu de Yazo et cyber je crois, je vais les intégrer ce week end.  Il était foutu dans mes dossiers indésirables.
18 juillet 2018 à 15:59:09 djyo4891 dit: bonjour à tous!
17 juillet 2018 à 17:54:18 lazarus dit: Ha,je préfere ca,j'ai cru que leur site avait un probleme
Sinon j'adore archive.org,c'est une vrai mine d'or.
17 juillet 2018 à 16:32:57 Patrice dit: Allez, bonne soirée : https://archive.org/details/internetarcade?&sort=-downloads&page=2
17 juillet 2018 à 15:20:18 Patrice dit: Maintenance
17 juillet 2018 à 14:44:54 lazarus dit: Plus d'accès au forum clickteam ni au clickstore depuis ce matin!!!
16 juillet 2018 à 21:19:50 lazarus dit: D'autant plus que c'est sur un site anglophone qui est relativement lu,donc c'est de la très bonne pub.
16 juillet 2018 à 19:54:51 Monos dit: Cela fait plaisir de voir ça. D'être newsez et partager. Bravos à Capitaine aussi car c'est aussi son bébé.
16 juillet 2018 à 19:45:45 Monos dit: Oh putain lazarus j'ai loupé ça. xd
16 juillet 2018 à 18:48:10 graboide dit: Je vois pas ce qui ça a de cool de gagner c est pas nous qui avons gagné c est l équipe de foot, c est eux qui a récolté la tune, moi perso ma vie va pas changer d un poil donc bon tant mieux ils on gagné mais pas de quoi hurler de joie, il y a en ils sont plus heureux qu à la naissance de leur gosse c est vraiment barge je trouve .
16 juillet 2018 à 17:25:02 lazarus dit: http://www.indieretronews.com/2018/07/prisonnier-ii-new-game-for-sega-master.html
16 juillet 2018 à 17:18:35 conceptgame dit: Par chez moi, ils étaient pour la Croati. J'ai bien dormi. :)
16 juillet 2018 à 12:26:47 Pit73 dit: Pour un ballon c est de circonstance !! :) >> je sors
16 juillet 2018 à 09:16:40 lazarus dit: Oui ça par contre,ça m'a un peu gonflé aussi.
16 juillet 2018 à 08:39:10 Seyjin dit: Perso, j’ai trouvé les klaxons jusqu’à 1h moins fun.
15 juillet 2018 à 22:43:42 conceptgame dit: Bravo les bleus ! @
15 juillet 2018 à 21:20:41 lazarus dit: Quel Match mes amis,quel match!!!!
15 juillet 2018 à 20:03:17 Cyberclic dit: CHAMPIONS DU MONDE LES GARS !!!
15 juillet 2018 à 10:47:39 lazarus dit: En route pour la final!!!!
15 juillet 2018 à 10:45:47 Cyberclic dit: Allez les bleus :)
15 juillet 2018 à 05:27:52 Pit73 dit: Oh ! Trop bien !!
14 juillet 2018 à 19:24:13 Monos dit: Un wonder Boy Like de toute beauté fait avec fusion !
14 juillet 2018 à 19:23:53 Monos dit: https://store.steampowered.com/app/717310/Aggelos/
27 juin 2018 à 17:14:59 Patrice dit: http://cavindave.clickteam.com/
Voir l'historique
Powered by EzPortal