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 :

Documention Complete et demo sur les bornes d'arcades


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 Documention Complete et demo sur les bornes d'arcades
    Ce topic parle d'un projet purement personnel que je mène , vu que je suis le seul assez fou dans le monde pour faire un homebrew sur ces machines disparu.

    Bon certain me connaisse probablement ma passion pour l'assembleur et le bas niveau , eh oui je souffre de boulimie de savoir sur les différentes machines existantes.
    Autant sur les vielles consoles ont de la doc bien fourni autant sur borne d'arcade il n'y a jamais rien vraiment eu a part MAME mais en homebrew c'est le néant.

    Je me doute bien que peu ont des connaissances sur borne d'arcade , mais je privilégie les borne d'arcades qui possède la carte mere + pcb de la rom séparer , sinon pour test sur du vrai hard , ça risque d’être très compliquer.

    Mon projet principal actuellement c'est la Taito F3 , c'est une borne d'arcade plus ou moins populaire il y a eu des bon shoot them up dessus ( Darius gaiden).
    Cette machine a ma grande surprise est vraiment plus puissante qu'une Neo Geo , je passe les caractéristiques techniques , je me doute que de nos jours ce n'est plus trop parlant.
    Voila j'ai l'honneur de vous présenter en exclu mondiale le premier homebrew pour taito F3 vu que je suis l'unique développeur de cette machine a ce jour.
    Ce code n'affiche qu'une couleur rouge a l'écran.
    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
    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
     
     
    ; REGISTRE TAITO F3
    RAMSTART = $400000
    PALETTE = $440000
    JOYPAD1 = $4A0000
    JOYPAD2 = $4A0010
     
     	dc.l	$417FFC, Main, Default, Default				;0x00
    	dc.l	Default, Default, Default, Default			;0x10
     
    	dc.l	Default, Default, Default, Default			;0x20
    	dc.l	Default, Default, Default, Default			;0x30
     
    	dc.l	Default, Default, Default, Default			;0x40
    	dc.l	Default, Default, Default, Default			;0x50
     
    	dc.l	Default, Default, VBLANK, IRQ				;0x60
    	dc.l	Default, Default, Default, Default			;0x70
     
    	dc.l	Default, Default, Default, Default			;0x80
    	dc.l	Default, Default, Default, Default			;0x90
     
    	dc.l	Default, Default, Default, Default			;0xA0
    	dc.l	Default, Default, Default, Default			;0xB0
     
    	dc.l	Default, Default, Default, Default			;0xC0
    	dc.l	Default, Default, Default, Default			;0xD0
     
    	dc.l	Default, Default, Default, Default			;0xE0
    	dc.l	Default, Default, Default, Default			;0xF0
     
     
    	org $100
     
    Default:
     
    	rte
     
    IRQ:
     
    	rte
     
    Main:
     
    	; Set stack pointer
    	move.l	#$417FFC,sp
     
     
    	;affiche un zolie rouge
    	move.l	#$00FF0000,PALETTE
    	move.w	#$1,$400000 ; test grâce au debug de MAME pour voir si on écrit bien en mémoire ram
     
    GameLoop:
     
    	jmp GameLoop
     
    VBLANK:
     
    	rte
     
    	org $100000
    On parlant de couleur c'est du RVB 24 bits , cela m'a étonner au début j’étais parti sur un RVB 16 bits.
    Prochaine étape afficher un sprite puis un background
    Mais cela ne fini pas la elle possède des effet de zoom , scanline et transparence assez poussé.
    J'ai mis un certain temps pour faire la rom même avec un code basic , le jeu est diviser sur 4 rom mais pas que les roms suivant sont la suite direct , bref en gros :
    1er octet va dans la rom1
    2eme octet va dans la rom2
    3eme octet va dans la rom3
    4eme octet va dans la rom4
    5eme dans la rom1
    ainsi de suite et croyait moi que ça me semblait pas évident au début

    Exemple de jeux sur cette plateforme :
    Nom : dariusg_a.png
Affichages : 2041
Taille : 15,0 Ko
    Nom : ridingf_a.png
Affichages : 2033
Taille : 20,1 Ko

    Mon autre projet le CPS1 et CPS2 , qui est une borne d'arcade de CAPCOM rival de SNK (Neo Geo).
    Pour le CPS1 il existe qu'une démo qui a était faite mais celui qui l'a fait n'a pas vraiment partagé grand chose ce qu'il a fait de plus il a fait un truc généraliste donc qui ne peut exploité le CPS1 complètement.
    Par contre pour le CPS2 rien n'a était fais pour le moment.
    je travaille quelque fois dessus mon principal souci c'est que j'ai vraiment du mal avec MAME qui supporte pas les hack sur CPS1 , donc je test sur FBA.
    J'ai pas réussi a faire un truc dessus correct pour le moment ,j'ai un code qui marche et qui modifie la palette mais aucune couleur n'est visible a l'écran , bref je dois encore travailler dessus.

    Neo Geo pocket (color) est une console portable ce n'est pas une borne d'arcade mais a ce jour 'aucun' homebrew n'a était fait.
    Je connais quelqu'un qui avait fait juste un petit truc dessus (changer la couleur) mais qui n'a pas voulu continuer ,donc je reprendrait une partie de son boulot (ou pas je sais pas ce qui lui reste) , c'est une console qui me semble très facile a programmer.
    Par contre son cpu est quasiment inconnu au bataillon un TLCS-900H , un cpu dériver d'un x86 16 bits , d'ailleurs il n'existe quasiment pas d'assembleur pour celui la donc je devrait probablement sois utilise l'assembleur gnu (que j'aime vraiment pas) , ou soit modifier l'assembleur vasm ce que je trouve plus intéressant , je précise que j'utilise l'assembleur vasm sur quasiment tout mes code asm (et il est facilement modifiable).
    Les capacité de la console me fait sourire par exemple il est dit qu'elle a 64ko de ram de travail , contre 8ko pour une SNES.

    Je tient a souligner une chose ,on m'amusant a lire le code de MAME malgrer tout ce qu'il se dit :
    Le but avoué de MAME est de documenter le matériel. Une vue plutôt puriste de l'émulation est adoptée, interdisant des modifications pouvant faire fonctionner un jeu correctement ou plus rapidement au profit de la précision de l'émulation.
    Ce qui est assez faux sur Taito F3 par exemple , le code rajoute que le jeu Cleopatra Fortune utilise une couleur de 21 bit au lieu de 24 , le code rajoute un if pour cette exception...
    Et j'ai remarquer que par exemple on continuant a le lire que certaine partie du hard n'est pas émulé d'autre est inconnu , mais l'émulation est a mon avis satisfaisant tout les jeux sont quasiment parfaitement émuler , (malheureusement) peu de jeu sont sorti donc elle na pas était exploité et les durées de vie des Borne d'arcade ne durait pas celle d'une console.
    Donc si je pourrait le mettre sur du Hard (ce qui est faisable , la carte pcb des rom Taito F3 est très simple , suffit de changer que les eprom) , il est probable que j'amenerait ma pierre dans la précision des émulateurs.
    Par exemple un exemple d'un tuto pour faire un convert : http://retrogamebay.free.fr/?convert...-taito-f3.html

    La Suite :
    J'ai un très gros trip pour la 3D enfin dans une certaine mesure il est vrai que OpenGL 4 ou vulkan ne m’intéresse nullement par exemple.
    Et donc il faut savoir que a une époque namco et sega se sont fait la guerre de la 3D (ça a débuté en 1993) donc pour vous dire que pendant qu'on jouait sur SNES ou MD , les japonais pouvait profiter dans un Game Center les meilleurs technologies qui existait a l'époque pour faire de la 3D.
    namco a sorti le system 22 et 23
    sega lui le Model 1 ,2 et 3
    Malheureusement pour moi les PCB (carte imprimé contenant le jeu) ne sont pas séparer donc la rom et la carte mère ne sont pas séparer et si je devais prog dessus , ça serait juste pour le plaisir de faire un exploit technique.

    Par contre le Sega naomi sorti bien plus tard permet de faire 'facilement' des homebrews , ils ont existes beaucoup dans le monde et il peut prendre en charge le GD-ROM par contre petit bémol , ils sont crypter bref un gros truc a faire pour exploiter cette machine.

    Pour le moment je met tout je que je trouve dans un wiki , je verrait par la suite comment je m'organise.
    Voila voila , je posterait probablement la suite de mes avancé

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Super comme truc, mais au final, avez vous une vraie machine ? La F3 ?
    Il y a pas mal d'homebrew sur Naomi, car cela revient à faire du homebrew sur DreamCast non ?

    Après, s'il y a peu d'homebrew, c'est simplement car il y a peu de machines, que chaque machine possédait des tweaks pour supporter tel ou tel jeu et que au final, les machines ne sont pas du tout répandues. Du côté de l'émulation, c'est un peu le même cas, sachant que les machines réelles ne sont pas toujours dispo.
    Toutefois, pour que mon message ne soit pas inutile, j'ai vu un gars (avec un blog sur internet ) qui fait une restauration de la borne OutRun (certes pas le même modèle que celle que vous visez), avec un reverse complet de la ROM. Un chef d'oeuvre encore une fois -> http://reassembler.blogspot.fr/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    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
    Pour le moment je n'en n'ai pas de Taito F3 , mais si j'arrive a faire un truc dessus probablement que je me l’achèterai
    Pour le CPS 2 j'ai un ami qui en possède une , et j'ai lu que darksoft allait sortir une sorte de PCB avec carte SD (si je dis pas de bêtise).

    Il y a pas mal d'homebrew sur Naomi, car cela revient à faire du homebrew sur DreamCast non ?
    Je ne connais aucune demo/homebrew sur naomi , mais c'est possible qu'il en est mes source date , je n'ai pas trop regarder ce qui a était fait de nos jours après ce n'est pour le moment pas ma priorité principal.

    Après, s'il y a peu d'homebrew, c'est simplement car il y a peu de machines, que chaque machine possédait des tweaks pour supporter tel ou tel jeu et que au final, les machines ne sont pas du tout répandues. Du côté de l'émulation, c'est un peu le même cas, sachant que les machines réelles ne sont pas toujours dispo.
    Exact , je suis d'accord avec toi , mais je trouve cela bizarre que en 2016 je suis encore le seul a penser faire un homebrew sur certaine de ces machines , surtout le CPS2 qui reste assez populaire.
    Enfin il a fallu attendre 2015 pour avoir un tuto en français sur SNES , donc je 'étonne plus de rien a vrai dire

    Sinon oui ça a l'air pas mal ce qu'il a fait , si je ne vise pas le System 16 , comme je l'ai dit parce que cela demande de sacrifier une PCB entière , bref interessant pour faire du hack ou pour l'exploit technique.

    Et pour l'avancer de mon truc sur F3 , je sais comment modifier le fix (c'est un background dédier pour afficher le Hud , il existe aussi sur Neo Geo par exemple).
    Le truc c'est que ça marche quand je fait un hack grâce au debug sur un jeu existant mais pas sur mon code
    J'ai l'impression qu'il faut activer un bidule

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bon courage.

    Pour moi, le homebrew sur Arcade, c'est normal que ce ne soit pas répandu. Déjà, très peu on de l'arcade et c'est pour jouer (). De plus, pour en avoir, c'est plutôt cher et souvent les machines tombent en rade (souvent mal entreposées + vieilles machines). Kannagi, je vais vous dire un truc : le monde de l'arcade est mort. Je crois que personne ne vous l'avez dit
    (Je ne dirai rien sur le monde de la SNES )

    En tout cas bon courage, je trouve ça ultra intéressant.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    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
    Citation Envoyé par LittleWhite Voir le message
    Kannagi, je vais vous dire un truc : le monde de l'arcade est mort. Je crois que personne ne vous l'avez dit
    , oui désolé je vis dans ma caverne
    On tout cas c'est bien que tu trouve cela super intéressant

    J'ai pu pas mal avancer et donc j'ai réussi a afficher le fix et un peu le BG + scrolling.
    voici le code source :
    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
    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
     
    ; REGISTRE TAITO F3
    RAMSTART		= $400000
    PALETTE	 		= $440000
    JOYPAD1			= $4A0000
    JOYPAD2			= $4A0010
     
     
    FIXTILE			= $61C000
    FIXDATA			= $61E000
     
    CONTROL0 		= $660000
    CONTROL1 		= $660010
     
    FIXSCROLLX		= $660018
    FIXSCROLLY		= $66001A
     
    FIXPRIO 		= $627200
    FIXFLAT 		= $620E00
     
    BGTILE 			= $610000
     
     
    SPRITEVRAM 		= $600400
     
     
    	dc.l	$417FFC, Main, Default, Default				;0x00
    	dc.l	Default, Default, Default, Default			;0x10
     
    	dc.l	Default, Default, Default, Default			;0x20
    	dc.l	Default, Default, Default, Default			;0x30
     
    	dc.l	Default, Default, Default, Default			;0x40
    	dc.l	Default, Default, Default, Default			;0x50
     
    	dc.l	Default, Default, VBLANK, IRQ				;0x60
    	dc.l	Default, Default, Default, Default			;0x70
     
    	dc.l	Default, Default, Default, Default			;0x80
    	dc.l	Default, Default, Default, Default			;0x90
     
    	dc.l	Default, Default, Default, Default			;0xA0
    	dc.l	Default, Default, Default, Default			;0xB0
     
    	dc.l	Default, Default, Default, Default			;0xC0
    	dc.l	Default, Default, Default, Default			;0xD0
     
    	dc.l	Default, Default, Default, Default			;0xE0
    	dc.l	Default, Default, Default, Default			;0xF0
     
     
    	org $100
     
     
    Default:
     
    	rte
     
    IRQ:
     
    	rte
     
     
     
    Main:
     
     
     
    	;cupworld initialise le jeu de cette maniere mais on ne sais pas pourquoi
    	move.w #$100,$4C0000
     
    	;couleur gris du fond
    	move.l	#$00777777,PALETTE
     
    	;seconde couleur
    	move.l #$0FFFFFF,PALETTE+4
     
    	;on envoie dans la vram (fix data)
    	move.l #TEXT,a1
    	move.l #FIXDATA+$20,a0
    	move.l #$20-1,d2
    	boucle2:
    		move.l (a1)+,(a0)+
    	dbra d2,boucle2
     
    	move.l #pgris,a1
    	move.l #PALETTE+$40,a0
    	move.l #$20-1,d2
    	boucle3:
    		move.l (a1)+,(a0)+
    	dbra d2,boucle3
     
    	;test
    	move.w	#$1,$400000
     
     
    	move.w	#$0001,FIXTILE+$80		;H
    	move.w	#$0002,FIXTILE+$80+4	;E
    	move.w	#$0003,FIXTILE+$80+8	;L
    	move.w	#$0003,FIXTILE+$80+12	;L
    	move.w	#$0004,FIXTILE+$80+16	;O
     
     
    	;active le fix
    	move.w #$2,$620600.l
     
    	;prio fix
    	move.w #$3000,$627200.l
     
    	;active le BG1
    	move.w #$1,$620E00.l
     
    	;prio
    	move.w #$3000,$62B000.l
     
     
    	;en ecrit dans la vram pour les tiles
    	move.l #$00000004,$610000
    	move.l #$00010004,$610004
    	move.l #$00000001,$610008
    	move.l #$00010001,$61000C
    	move.l #$C001023F,$610010
     
    	;scrolling du fix
    	move.w #$0029+$80,FIXSCROLLX
    	move.w #$001F+$40,FIXSCROLLY
     
    	;scrolling X
    	move.w #(1023-38)<<6,CONTROL0
    	move.w #$0000,CONTROL0+8
     
    	move.w	#$2000,sr ; active le VBLANK
     
    GameLoop:
     
     
     
    	jmp GameLoop
     
     
    VBLANK:
    	movem.l d0-d7/a0-a6,-(a7)
     
    	addi #1,$400004
     
    	movem.l (a7)+,d0-d7/a0-a6
    	rte
     
    TEXT:
    	dc.l $11000011,$11000011,$11000011,$11111111
    	dc.l $11111111,$11000011,$11000011,$11000011
     
    	dc.l $11111111,$00000011,$00000011,$11111111
    	dc.l $11111111,$00000011,$00000011,$11111111
     
    	dc.l $00000011,$00000011,$00000011,$00000011
    	dc.l $00000011,$00000011,$11111111,$11111111
     
    	dc.l $11111111,$11111111,$11000011,$11000011
    	dc.l $11000011,$11000011,$11111111,$11111111
     
     
    pgris:
    	dc.l $00000000,$00101010,$00202020,$00303030
    	dc.l $00404040,$00505050,$00606060,$00707070
    	dc.l $00808080,$00909090,$00A0A0A0,$00B0B0B0
    	dc.l $00C0C0C0,$00D0D0D0,$00E0E0E0,$00F0F0F0
     
     
    	org $100000
    J'ai du désassembler un jeu existant et relire pas mal le code source pour avoir ce résultat.

    Par contre MAME initialise (ou pas) la palette de couleur avec ben des couleurs , je que je savais pas vu que je me suis cassé la tête a cherché pourquoi j'avais de la couleur alors que j'avais rien envoyer en VRAM...

    voici le résultat :

    Je sais c'est moche pour le 'Hello' j'ai écris le texte en dur (j'ai envoyer la palette de couleur +écriture pixel par pixel).
    Mais la priorité ce n'est pas de faire un jeu actuellement dessus , (je pourrait très bien faire un convertisseur PNG/TAITO F3) , mais ce n'est pas la priorité principal pour le moment.
    Pour le BG ça s'affiche comme je veux par contre je ne comprend pas pourquoi j'ai des colonne et non des bloc de 16x16.
    Ah aussi comme ce sont des donners qui sont dans la rom je n'ai aucune idée de ce que cela doit ressembler normalement.
    Donc il me reste encore a trouver pourquoi il y a ce mystère de la colonne et le BG sera 'fini' , ensuite je pourrait me concentrer sur les sprites

Discussions similaires

  1. [CR 8] Cherche documentation complete surtout sur les graphes (diagrammes)
    Par alilociano dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 13/10/2011, 11h15
  2. Recherche de documentation sur les automates Siemens avec Delphi
    Par ****** dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 22/10/2005, 22h25
  3. [10g R2 Windows] Documentation sur les extensions .NET
    Par Laurent Dardenne dans le forum Oracle
    Réponses: 5
    Dernier message: 22/08/2005, 20h27
  4. Documentation sur les composants réseaux
    Par OverCat dans le forum Hardware
    Réponses: 5
    Dernier message: 27/01/2005, 10h49
  5. Recherche documentation sur les arbres
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/09/2004, 01h40

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