IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

Programmation sur Neo Geo !


Sujet :

Projets

  1. #1
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut Programmation sur Neo Geo !
    Bonjour a tous ,
    Alors comme vous pouvez le devinez c'est un topic que je dédie a la programmation sur Neo Geo et a mes découvertes sur cette console
    Pour ceux qui ne connaisse pas cette console mythique , c'est un console 16 bits (même époque que la Super nintendo et la Megadrive) , sauf que la différence c'était une console très puissante pour l'époque et qui faisait tourné des jeux d'arcades.

    Pour la comparé a la super nintendo :
    Super Nintendo Neo Geo
    CPU 65816 : 2.67 mhz 68000 : 12 mhz
    Nombre de Sprite 128 380
    Nombre de Palette 16 256
    Ram Disponible 8ko 32ko

    J'ai choisi de mettre ces informations (non exhaustive) pour qu'on voyant clairement la comparaison , d'un point de vue graphique entre ces deux console et des informations qui peuvent être mal interprété sur le net.
    Par exemple vous lirez souvent que la Ram de la Super nintendo fait 128ko , c'est vrai mais 64ko sont exclusive pour le son , et les 64ko autre vous n'aurez accès que a 8ko le reste est réservé.
    Donc la Neo Geo possède 32ko de Ram disponible qu'on peut écrire , c'est comme si la Neo Geo avait 4 fois plus de RAM , bref a cette époque ou la guerre des chiffres faisait rage on pouvait leur faire dire n'importe quoi par exemple aussi la Super nintendo ressemble plus a un hybride 8-16 bits , le 68000 lui est un vrai processeur 16 bits.
    Pour la fréquence du processeur y 'a pas photo circulez

    D'un point de vue graphique la Super Nintendo (ça dépend des modes et donc le nombre de palette du BG change) mais en gros la SNES possède 8 palettes pour le background et 8 palettes pour les spirtes ,ça veut dire en gros qu'il fallait pas être trop gourmand et bien réfléchir a ce qu'on affiche , la sur ce coup c'est la fête sur la Neo Geo il y 'en a 256 y'a vraiment pas de quoi compté la
    Alors que la super nintendo( mais les autres consoles 8/16 bits aussi Master system , Nes , Mega Drive) , possède une accélération pour gérer le Background , la Neo Geo ne l'a pas , certes on peut pensé que c'est une faiblesse mais la Neo Geo permet d'avoir des sprites de 16x16 a 16x512 pixel on gros si on fait un BG ça nous prend que 22 sprites , et si on met 2 ça nous fait 44 sprites utilisé sur les 380 , on gros la Neo Geo permet tout de même d'afficher 200 sprites de plus que la Super Nintendo.
    Par contre la Neo Geo possède une accélération matériel pour gérer le Hud et les bitmap font , il est équivalent au BG 3 de la Super Nintendo qui est pensé de cette façon lui aussi.
    Niveau effet la Neo Geo permet que chaque sprite peut être rétrécie (et non pas de zoom), la super Nintendo ne se défens pas trop mal Mode 7 , transparence , scanline ect bref sur ce coup la SNES a pas mal d'effet qui a donné l'impression d'une console sur-puissante.

    Certain on surement entendu parlé du processeur 68000 , c'est un processeur qui était super populaire et qui a été utilisé sur de nombreuse machine , niveau assembleur c'est un processeur très agréable a programmé 16 registre disponibles (8 de données , 8 d'adresses) , si on le compare a la SNES qui avait 3 registres (un Accumulateur + 2 registres secondaire) ,pour ne pas arrangé son cas sur la Super nintendo non seulement il y a peu de registres mais en plus en ne peut faire des calculs que sur l'accumulateur , ce n'est bien sur pas le cas du 68000 (ou on peut faire des calcul sur n'importe quel registre).

    Les jeux Super Nintendo tourné autour du 512ko - 1Mo par rom en moyenne ( y a eu plus mais c'est rare).
    La Neo Geo peut contenir plus d'une dizaine de Mo sans probleme.

    Voila pour l'aspect technique.
    Niveau programmation la Neo Geo permet d'échangé avec le matériel soit grâce au BIOS soit au registre mémoire , d'ailleurs du coup il y a 2 façon pour gérer le Joystick (registre mémoire ou BIOS).
    Sinon elle n'est pas particulièrement difficile a programmé pas mal d'information a ingurgité tout de même , mais je dirait qu'elle est moins exotique que notre ami la Super Nintendo ^^.
    Le Bios gere aussi a gérer les 3 versions de la Neo Geo , MVS,AES et CD , en gros :
    -la Version MVS c'est pour les bornes d'arcades et oui la Neo Geo c'est avant tout une machine dédié a l'arcade.
    -la Version AES c'est les cartouche pour la console de salon
    -La version CD comme son nom l'indique , une version CD le gros souci de cette version c'est que les chargement sont très long.
    Mais niveau code c'est pareil , mais le programmeur peut s'il le souhaite faire des changements mineurs pour les différentes version par exemple des crédit limité pour une partie sur les versions consoles (pour pas rendre les jeux trop facile), et crédit illimité pour la version MVS (enfin tant que vous avez de l'argent ).

    Voila de manière personnel je code toujours en assembleurs , il ne me reste que le fixmap a approfondir (vous savez le truc pour gérer le Hud + bitmap font) et la partie sonore , sinon je n'ai aucune difficulté a faire des choses dessus , ensuite il faut vraiment codé des outils externe pour espérer faire des choses avec , je n'ai pris aucun outils existant pour les images ou autre tout fait maison , d’ailleurs mon éditeur de map , je compte l’appeler Multi retro editor vu que il gère des map pour SNES , Master System et Neo Geo , pareil pour mon convertisseur d'image .png->console(SNES , NG et MS) , allez avec un peu d'effort je ferait la version Nes, MD et PC engine

    Un Screen :


    Je gere le principal : affichage d'un background et de 2 sprites + control joystick.
    La suite ? je compte surement m’amusai d'un point de vue technique mais il y a plusieurs gros point qui me bloque pour faire un jeu sur Neo Geo :
    -son prix , je joue certes régulièrement a la Neo Geo chez des amis mais je n'en possède pas
    -Les Jeux Neo Geo qui sorte en homebrew coute 400 euros ... alors soit il y a arnaque soit c'est le prix , mais je trouve par exemple que si le cout unitaire de fabriquer une cartouche coute genre 300 euros moi ça me tente moyen , ou alors il profite de la vague rétro pour s'en mettre plein les poches , il faudrait vraiment que je me renseigne sur le prix de fabrication au cas ou.
    -Il n'existe pas de Linker donc pas vraiment possible de testé sur une console , le seul moyen c'est 'acheter une version CD et de gravé (mais on s'amuserait pas a faire des test souvent ).
    -Me faut un Pixel artiste !
    En tous cas si je dois faire un jeu sur Neo Geo ça serait un beat them all et des jeux arcade tiré du sports et en particulier du foot pas que j'aime le foot mais en arcade (ça veut dire chez moi sans régle réel) ça peut être très fun ^^

    Lien : http://www.mediafire.com/download/4m...k5/ssideki.zip
    (ça va en zip ça fait 282ko la rom ^^).
    Oui comme il n'y a pas possibilité charger une rom sur les émulateurs , j'ai pris la rom de super sidekicks.

    Voila voila fini mon pavé , merci d'avoir lu

  2. #2
    Expert éminent
    Avatar de Vetea
    Homme Profil pro
    Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Inscrit en
    Février 2005
    Messages
    2 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2005
    Messages : 2 061
    Points : 6 443
    Points
    6 443
    Par défaut
    Pfiouuu ...
    Je m'incline, c'est un super post et tu es un Jedi !
    Ce n'est pas moqueur, j'ai toujours été admiratif des personnes qui maitrisent cet "art", moi je ne fais qu'effleurer quelques principes, mais après je bloque sur la logique et la synthèse d'un algo en assembleur, trop compliqué pour mon petit cerveau.
    La Neo Geo est très cotée et les jeux se vendent encore a prix d'or ...
    C'est un cap après tes essais sur la SNES, la tu as une borne d'arcade sous tes doigts !!

    Mes respects Maitre, puisse le pouvoir ancestral des Bits te sourire.
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  3. #3
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 700
    Points
    8 700
    Billets dans le blog
    43
    Par défaut
    Le CPU de la SNES est faiblard, mais sa fréquence est tout de même un chouilla plus élevé il me semble non ?

    Bonne initiative sinon. Bon courage
    Tutoriels et FAQ TypeScript

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    @Vétéa
    Bah Merci
    Pour l'algo bizarre normalement un algo est indépendant de la machine , enfin j’imagine qu'il faut juste être plus méthodique (et non avoir un super cerveau ) par exemple j'utilise le même algo pour l'animation et les collision sur mon jeu SNES et mon RPG 2.5D sur PC (pour les collisions je regarde juste l'axe des z en plus en 3D).

    La Neo Geo est très cotée et les jeux se vendent encore a prix d'or ...
    Pour ça que je plaisante toujours avec mes amis : "Je veux Metal Slug sur AES c'est possible ?"
    Pour ceux qui se pose la question , la série des metal slug sur AES tourne a $2 000 voir plus

    C'est un cap après tes essais sur la SNES
    Je n'abandonne pas de faire un jeu complet sur SNES en tout cas
    Disons que la Neo Geo c'est la console que je devais obligatoire testé d'un point de vue prog

    @yahiko
    Un chouilla c'est vrai c'est 2.68 mhz , oui la SNES peut monté 3.58 mhz mais par défaut elle est a 2.68 mhz , si tu monte tu as les accès a la VRAM me semble-til plus long (et moi ça me pose un souci ça deja que je le trouve long de base) , mais apparment Secret of Mana tournait sur 2.68 mhz.

  5. #5
    Membre expert
    Avatar de Dabou Master
    Homme Profil pro
    Graphiste 3D auto-didacte
    Inscrit en
    Février 2012
    Messages
    1 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Graphiste 3D auto-didacte

    Informations forums :
    Inscription : Février 2012
    Messages : 1 018
    Points : 3 569
    Points
    3 569
    Par défaut
    Le seul truc qui me gêne (bon d'accord le truc principal, pour le reste je vais juste me taire ce n'est pas constructif) c'est ce mgz, c'est les MHz ? Ou ça n'a rien à voir ? Parce que du coup je ne sais pas ce que c'est.
    Abandonner ses rêves n'est pas à la portée de tout le monde.

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Honte a moi
    J'ai édité cet horrible lapsus (oui parce que mg pour méga lol) , donc oui c'est bien des MHZ ^^.

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je ne sais pas si ça intéressera du monde

    Je vais commencé a parlé des émulateurs ,une grande histoire d'amour entre eux et moi ^^ , je viens de remarqué que mon zip ne marche que sur un émulateur celui que j'utilise gngeo
    Sachant que je suis quasiment sur que mon code marche , j'ai déduit que les émulateur faisait des vérification plus poussé pour savoir si c'est la bonne rom.
    Du coup j'ai repris exactement le poids de la rom de ssdeki , et la miracle ça marche sur Mame et WinKawaks , bref la plupart des émulateur vérifies la taille de la rom pour savoir si c'est la bonne

    Sinon niveau code le fixmap n'a plus de secret pour moi , j'ai bossé l'animation ça marche plutôt bien mais je trouve le système encore un peu trop lourd je vais essayé de l'alléger par contre bonne nouvelle pour moi ça m'a permis d'amélioré mon code pour l’animation pour mon jeu SNES
    Disons que j'ai trouvé un bon moyen de faire des multiplication en assembleurs (sans utilisé sur le 68000 l'instruction mul qui est assez longue en cycle, surtout que sur celui de la SNES il n'existe pas de multiplication).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    ;la fonction est limité a une multiplication a 10 maximum mais plutôt utile pour la plupart des multiplication qui ne demande pas de grosse multiplication
    move.l #5,d0
    clr d1
    ;le principe est de choisir l'adresse de la fonction dynamiquement
    jsr libmul+(10-n)*2 ; n le chiffre a multiplier ici 5*n
    ;sorti du résultat sur le registre d1
     
    libmul:
     
    	add.w d0,d1
    	add.w d0,d1
     
    	add.w d0,d1
    	add.w d0,d1
     
    	add.w d0,d1
    	add.w d0,d1
     
    	add.w d0,d1
    	add.w d0,d1
     
    	add.w d0,d1
    	add.w d0,d1
     
     
    	rts

    Bref pour le moment c'est plu bac a sable pour voir quel est le meilleur moyen de codé en assembleur sur Neo Geo , je préfère pas y allé en bourrin si je peux avoir une libasm fiable ça serait un plus

    Screen:


    Toujours le même lien.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/01/2005, 11h36
  2. [Eclipse] Programmer sur un fond noir
    Par raj dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/12/2004, 10h15
  3. [Reseau] Execution de programmes sur un autre PC
    Par el3gans dans le forum Général Java
    Réponses: 5
    Dernier message: 18/11/2004, 11h20
  4. Methode de programmation sur des gros projets
    Par dynobremo dans le forum EDI
    Réponses: 10
    Dernier message: 08/06/2004, 02h59
  5. Déclenchement Programme sur Virtual Key
    Par Tom-G dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 09/05/2003, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo