Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Une SNES pour la Graph 90+E ?
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Une SNES pour la Graph 90+E ?

Posté le 09/02/2019 13:41

Coucou tous le monde !

Vous avez entendu parler de la Graph 90, dernier modèle de la firme Casio, cette machine est en couleur 16 bits... Ni une ni deux, quelques courageux développent un émulateur Game Boy Color : Prizoop. La Game Boy Color et ses 8 bits correspondait donc bien aux capacité de la calculatrice... L'émulateur se voit aujourd'hui capable de supporter les jeux monochromes de Game Boy.

D'autre, on vu là l'occasion d'une future évolution vers la Game Boy Advance, synonyme pour beaucoup de Mario Kart !

Nintendo n'est pas directement passé de la GBC à la GBA, il y a eu les Nintendo Entertainment Systems et les Super Nintendo Entertainment Systems. Ces deux consoles ont le bon goût d'être en... 16 bits soit un format de couleurs parfaitement adaptable à la Graph 90+E Le problème est la taille de l'écran de la SNES est supérieur à celui de la Graph 90+E

Le problème qui vient maintenant et est de taille : soit on refait un autre émulateur qui ne fait que NES soit on modifie Prizoop pour qu'il intègre ses nouvelles fonctionnalités, soit on... bidouille un convertisseur style Facto-Room qui permettrait d'avoir des jeux de NES et SNES en *.gbz donc compatible avec Prizoop sans pour autant modifier celui-ci ou coder un nouvel émulateur...
Ou alors on partirait vers la GBA...

Ayant que peu de temps à moi, le lance le projet en faisant appel aux bonnes âmes motivées et dispo

Merci d'avance à tous ceux qui participeront, à élaboration de ce projet : technique, code, encouragements critiques soutient et feedback divers !


1, 2, 3, 4, 5, 6, 7 Suivante
Critor Hors ligne Administrateur Points: 2571 Défis: 18 Message

Citer : Posté le 09/02/2019 13:50 | #


De mémoire, il me semble que la SNES bien qu'en 16-bits est assez complexe à émuler fidèlement, avec l'histoire des coprocesseurs embarqués sur certaines cartouches.

La GBA est sans doute plus simple, même si les performances pourraient ne pas être au top.

L'auteur de Prizoop, l'émulateur Game Boy & Game Boy Color pour Graph 90+E, avait commencé un émulateur NES, NESizm :
https://github.com/tswilliamson/nesizm

Malheureusement je n'arrive pas à le compiler, et l'auteur n'a plus donné signe de vie dans nos communautés depuis septembre 2017.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 17:35 | #


D'autre, on vu là l'occasion d'une future évolution vers la Game Boy Advance, synonyme pour beaucoup de Mario Kart ! Malheureusement, ce modèle et ses 32 bits ne sont pas compatible avec la calculatrice...

Il n'y a pas d'incompatibilité. Le SuperH-4A est aussi 32 bits. Tu es sûr que tu ne confonds pas la taille des registres du processeur et le format des couleurs de l'écran ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 17:37 | #


je confond l'encodage des couleurs et la puissance du micro-processeur effectivement Il n'empêche que sur le papier les couleurs de la Graph 90 sont encodées en 16 bits et les couleurs de la GBA sont encodées en 32 bits
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 17:43 | #


Shadow15510 a écrit :
Il n'empêche que sur le papier les couleurs de la Graph 90 sont encodées en 16 bits et les couleurs de la GBA sont encodées en 32 bits

Certes, mais on peut toujours prendre la couleur représentable la plus proche. L'effet se verra à peine, je pense.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 17:44 | #


ben, je sais pas trop l'effet que ça ferait si l'on ramenait tous sur du 16 bits...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 17:46 | #


Ça se verrait pas sinon à peine. Il faut un bon écran pour que la différence se sente. Une mauvaise gestion du gamma se ferait sentir beaucoup plus. Il est également un peu difficile d'afficher des couleurs très vives sur l'écran de la Graph 90 ; je pense que cet effet-là se verra beaucoup plus.

Non, la question c'est plutôt « quel est le coût en temps (et l'impact sur les performances) nécessaire pour faire cette approximation » ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 09/02/2019 18:14 | #


D'après la fiche technique que j'ai sous les yeux, je peux dresser une petite comparaison entre SNES et Graph 90 :

SNES:

processeur : 16 bit cadencé à 3,58 MHz maximum

RAM de travail : 128 ko

RAM vidéo : 64 ko ( décors et sprites)

nombre de couleurs : 32 768

définition : de 256 x 224 à 512 x 448 pixels ( en fonction du mode graphique)

Stockage : cartouches de 1 Mo

doc sur la SNES : ici


GRAPH 90 :

processeur : SH4A à 117 MHz ( overclockable ) 32 bits

RAM : 512 ko

RAM vidéo : ( inclus dans la RAM )

nombre de couleurs : 65 000

définition : 396 x 224 pixels

Stockage : 16 Mo

"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 18:25 | #


Oui, la VRAM est incluse dans la RAM classique. Il faut compter environ 170 ko de RAM. N'oublie pas que dans la RAM de travail, on a environ 512 ko de zone fixe.

La plus grosse difficulté est que l'écran n'est pas assez gros. C'est vraiment un handicap !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 09/02/2019 18:35 | #


Oui, la définition est un problème, mais ca n'est pas nouveau, et des solutions sont possibles : réduire la définition ( des sprites dessinés avec moins de pixels... ) ou rogner l'affichage ( conserver la définition, mais moins de choses à l'écran... )
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 18:40 | #


Je repensais à la GBA : plutôt que de bidouiller un émulateur, on pourrait faire un convertisseur des ROM GBA vers le format *.gbz de Prizoop, en modifiant la couleurs des sprites à ce moments là, plus besoin de se casser la tête non ? Ou alors j'ai vraiment dit une connerie énorme sans m'en rendre compte ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 18:47 | #


Tu as dit une connerie... énorme. x_x

Convertir une ROM contenant du code ARM 32-bits en un format contenant du code Z80 8-bits ? Ça défie l'imagination !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 18:54 | #


Ça défie l'imagination dis-tu... Aha bon tant que ça... ?
Va falloir que je me surveille alors...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Critor Hors ligne Administrateur Points: 2571 Défis: 18 Message

Citer : Posté le 09/02/2019 18:59 | #


En gros si tu veux, pour avoir eu les deux consoles physiques entre les mains :
- la Game Boy Advance accepte les jeux Game Boy et Game Boy Color
- mais les Game Boy et Game Boy Color n'acceptent pas les jeux Game Boy Advance

La compatibilité marche dans un seul sens.
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 19:01 | #


Je pensais pas à ça : je soumettait l'idée que l'on fasse un convertisseur des *.gba vers le format *.gbz comme Facto Room qui transforme les *.gb et *.gbc en *.gbz Du coup nous aurions eu des ROM de GBA mais remaniée pour être compatible avec l'émulateur
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 19:03 | #


je soumettait l'idée que l'on fasse un convertisseur des *.gba vers le format *.gbz

Tu proposes donc que l'on convertisse une ROM de jeu Game Boy Advance en une ROM de jeu Game Boy (Color), c'est bien ça ?

Comme je l'ai dit (en des termes imagés), c'est impossible à moins (entre autres) d'écrire un recompilateur ARM 32-bits vers Z80 8-bits, ce qui serait plus compliqué que de faire un émulateur Game Boy Advance complet.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 09/02/2019 19:09 | #


Oui si l'on veut, en fait même sans parler compatibilité, j'avais dans l'idée de régler le problèmes des couleurs 32 bits dès ce moment : plutôt que de faire calculer les nouvelles couleurs par la calculatrice, on convertit dans la ROM *.gba toutes les couleurs du 32 bits vers le 16 bits... Du coup c'est déjà fait : la calto n'as plus qu'a afficher les couleurs 16 bits converties par l'ordinateur du 32 bits vers le 16 bits
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 09/02/2019 20:38 | #


plutôt que de faire calculer les nouvelles couleurs par la calculatrice, on convertit dans la ROM *.gba toutes les couleurs du 32 bits vers le 16 bits...

C'est naïf !

Dans le code hexadécimal, tu ne peux pas savoir ce qui est une couleur et ce qui n'en est pas une. Le ff ff ff ff qui était stocké là peut très bien être utilisé par des fonctions différentes, une qui s'en sert comme la couleur blanche et une comme l'entier -1 ! Si tu ne la modifies pas, la couleur sera fausse, mais si tu la modifies, le calcul sera faux, ce qui est encore pire.

En plus imagine un instant que j'ai une fonction pour combiner un pixel semi-transparent avec un pixel opaque. La valeur est calculée à l'exécution, et la fonction ne marche que si les couleurs en entrée sont 24-bits. Elle renvoie en plus la valeur en 24-bits. Vas-tu patcher la fonction ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Leno Hors ligne Membre Points: 282 Défis: 0 Message

Citer : Posté le 10/02/2019 09:13 | #


Je ne pense pas que ce projet soit à ma porté mais j'aimerais quand même comprendre comment vous allez faire pour emuler la Snes
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 10/02/2019 09:35 | #


Un émulateur, dans le principe ça consiste à simuler le processeur et les périphériques (écran, manettes, etc) à l'aide d'un programme.

Pour le processeur, on écrit un programme qui lit du code assembleur et le simule dans la RAM. On ne l'a pas en matériel, le processeur simulé, mais on utilise la mémoire pour stocker l'état dans lequel il serait si on lui faisait exécuter la ROM.

Il faut également simuler la mémoire, ce qui ne pose pas de difficultés outrageuses la plupart du temps.

Ensuite, il faut simuler les périphériques ; selon les architectures la communication avec les périphériques peut se faire via des instructions spéciales ou via la mémoire. On intercepte donc ces communications et on simule également le fonctionnement des périphériques.

Enfin, on balance une ROM et enjoy! (dans les grandes lignes)
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Leno Hors ligne Membre Points: 282 Défis: 0 Message

Citer : Posté le 10/02/2019 09:51 | #


Et dans le cas d'un emulateur Snes sur la graph 90, quels sont les étapes qui vont poser problème ?
1, 2, 3, 4, 5, 6, 7 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 105 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd