Auteur Sujet: [WIP] Bricolage sur CPS1  (Lu 20878 fois)

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #32 le: Samedi 22 Juin 2013, 20:24:00 pm »
Regarde les crédits sur dead battery society, tu verras que le 'mec' ne débarque pas de n'importe où  ;)
On lui doit plutôt le respect  <:)
Think different, don't purchase Apple !

Hors ligne dlfrsilver

  • Intéressé
  • *
  • Messages: 22
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #33 le: Dimanche 23 Juin 2013, 01:20:35 am »
J'aime bien les mecs qui débarquent de n'importe où sur le forum et te mettent une claque :D
Chapeau <:)

Salut Iro, tu ne me connais pas, c'est vrai. Pourtant dans le monde du retrogaming mes faits d'armes sont connus :) :

Sur Micro :
J'ai récupéré et fait préserver des prototypes de jeux sur amiga (plus de 5 au total):
Snow bros, Vade retro Satanas, tecnoball, equality, tecnoball Z, light quest.
 
j'ai intégralement traduit en français eye of the beholder I et II sur amiga, et j'ai initié le projet de passage du jeu de 32 couleurs en 256 couleurs (C'est mon ami CFOU qui a intégralement ressourcé le code du jeu, qui l'a corrigé et crée les outils qui ont permis la traduction du jeu.

En arcade :
j'ai crée des sets sans pile pour les jeux CPS-1 protégés en version euro (knights of the round Euro, king of dragons 2 versions sur 3, the punisher euro, warriors of fate euro, 3 wonders euro et jap, et j'en ai d'autres en route :) )

après je poste pas souvent sur gamoover, et c'est normal, je suis déjà sur plusieurs autres forum, et ça me prend un max de temps.

Par contre des gens me sollicitent il y en a , et je tends la main, je l'ai toujours fait jusqu'ici.

Dans le cas d'Aje, je me suis montré un peu brusque, mais c'est pour la bonne cause. Ca ne sert à rien que je lui bourre la tête d'information si il s'emmêle les pinceaux avec les infos de base.   

C'est pareil dans tout apprentissage, faut y aller progressivement, et pour être honnête, idem pour moi, si je bute sur un truc, je me muscle sur ce que j'ai sous les yeux. Quand j'ai compris je passe à la suite. C'est comme ça que j'ai fais pour créer les sets. j'ai mis 3 semaines pour comprendre le fonctionnement de tout ça. Pas mal pour un non-programmeur non ? ;D

Hors ligne th_vador

  • Arcade Myth
  • *
  • Messages: 4517
  • come and get some
    • Voir le profil
    • TomTom's Lair
[WIP] Bricolage sur CPS1
« Réponse #34 le: Dimanche 23 Juin 2013, 11:32:44 am »
je pense que vous vous méprenez, Iro dit qu'il aime bien pour dire tout simplement qu'il aime bien :)
En tout cas, ça prend une bonne tournure tout ça ^-

Hors ligne olschool

  • ✌(◕‿◕)✌ Donateur 2018
  • Level Buster
  • *
  • Messages: 2526
  • Le JR's est Immortel
    • Voir le profil
    • Le JR's
[WIP] Bricolage sur CPS1
« Réponse #35 le: Dimanche 23 Juin 2013, 11:50:39 am »
Moi je suis FAN !!!

un grand merci à vous tous

 ^-^

Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.


Recherche Bornes: Space  Invader/ Rolling Thunder/Dragon's Lair/Kung Fu Master et Karateka Champ et Lethal Enforcer.

Hors ligne kaneda56

  • Pink Lover et Tassimo Buveur
  • Team
  • Arcade Kingmaster
  • *****
  • Messages: 4246
  • Je pratique le bukkake sur Tibo
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #36 le: Dimanche 23 Juin 2013, 18:36:54 pm »
Pareil, je n'entrave fichtre rien mais je kiffe ^-

"Arrête de te croire fort avec tes roll cancel!!!"
Paroles de Sac

Hors ligne Iro

  • Alias le Rouston Masqué
  • Staff
  • Dieu de l' Arcade
  • *****
  • Messages: 17420
  • Iro, chevalier Judaï
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #37 le: Dimanche 23 Juin 2013, 19:17:40 pm »
En fait , j'ai mal édité mon message, le "où" est resté
C'étais évidemment un encouragement :)
« Modifié: Dimanche 23 Juin 2013, 19:23:10 pm par Iro »
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF

LES TUTOS DE GAMO   

Hors ligne dlfrsilver

  • Intéressé
  • *
  • Messages: 22
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #38 le: Dimanche 23 Juin 2013, 22:52:11 pm »
En fait , j'ai mal édité mon message, le "où" est resté
C'étais évidemment un encouragement :)

Viiiii, c'est cool tout ça :) pas de soucis les gars :)

d'ailleurs en parlant des sets CPS1, j'espère vraiment réussir à déplomber Capcom Quiz&dragons, j'ai bossé pas mal dessus, mais il est lourdement protégé. les registres principaux sont faciles à trouver.
mais les accès indirect....pfffouuu sans parler des checksums.

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #39 le: Mardi 25 Juin 2013, 21:24:04 pm »
Salut,
 Bon quelques avancements, j'ai trouvé beaucoup plus simple pour adapter la c board (enfin j'espère).
 J'ai modifier les sources de mame pour y rajouter un jeu fonctionnant avec mes fichiers en test et la config de mon multi CPS1.
 Je aussi modifier rajouter un espion pour voir tous les accès au PPU, je sais maintenant à quel endroit du code source sont modifiés les registres.
 L'avantage est donc de pouvoir espionner les accès indirects.
 Je peux aussi espionner les protections par multiplication  :-)=
 Je vais me faire la main sur willow pour tester.
A bientôt
Think different, don't purchase Apple !

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #40 le: Mardi 25 Juin 2013, 21:35:29 pm »
Exemple sur un willow original :
PC Type accès Type Data
PC 0000047c Ecriture layer_control 12e0
PC 00000484 Ecriture palette_control 003f
PC 000015c2 Ecriture palette_control 003f
PC 000018f2 Ecriture layer_control 12f8
PC 000018f2 Ecriture layer_control 12c0
PC 000018f2 Ecriture layer_control 13b8
PC 000018f2 Ecriture layer_control 1380
PC 00001902 Ecriture priority 0 0
PC 0000190a Ecriture priority 1 0
PC 0000190a Ecriture priority 1 003e
PC 00001912 Ecriture priority 2 0
PC 00001912 Ecriture priority 2 00fe
PC 0000191a Ecriture priority 3 0
PC 0000191a Ecriture priority 3 001e

PC est le program counter (il spécifie l'instruction suivante lors de l'accès)
Think different, don't purchase Apple !

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #41 le: Mercredi 26 Juin 2013, 23:41:04 pm »
Bon alors j'avance encore un peu plus dans la compréhension, mais bon, c'est pas encore ça...
Willow ne marche toujours pas terrible (sous emulateur), j'ai les graphismes mais il m'en manque encore quelques uns).

Voilà pour le moment ce que j'ai compris grâce à mame :
CPS-B Registers
---------------
Unlike CPS-A registers, which are at fixed addresses, CPS-B registers move from game to game.
Following example strider

0x66-0x67   Layer control register
            bits 14-15 seem to be unused
                ghouls sets bits 15 in service mode when you press button 2 in
                the input test, with no apparent effect on the pcb.
                qtono2j sets them both at the game over screen.
            bits 6-13 (4 groups of 2 bits) select layer draw order
            bits 1-5 enable the three tilemap layers and the two starfield
                layers (the bit order changes from game to game).
                Only Forgotten Worlds and Strider use the starfield.
            bit 0 could be rowscroll related. It is set by captain commando,
                varth, mtwins, mssword, cawing while rowscroll is active. However
                kodj and sf2 do NOT set this bit while they are using rowscroll.
                Tests on the msword pcb show that even if this bit is not set,
                rowscroll still works. Therefore, the purpose of this bit is unclear.
0x68-0x69   Priority mask \   Tiles in the layer just below sprites can have
0x6a-0x6b   Priority mask |   four priority levels, each one associated with one
0x6c-0x6d   Priority mask |   of these masks. The masks indicate pens in the tile
0x6e-0x6f   Priority mask /   that have priority over sprites.
0x70-0x71   Palette control register. This indicates which palette
            pages to copy when the palette base register is written to.
            There is one CPS2 game (Slammasters II) setting this to 0x2f; all the other
            games normally set it to 0x3f, though in some cases different values are
            used during boot:
            ghouls  0x02 (and palette base is set to 9105; palette base is 9100 normally)
            strider 0x02 (and palette base is set to 9145; palette base is 9140 normally)
            1941    0x02 (and palette base is set to 9145; palette base is 9140 normally)
            unsquad 0x0f
            kod     0x0f
            mtwins  0x0f

            bit 0: copy page 0 (sprites)
            bit 1: copy page 1 (scroll1)
            bit 2: copy page 2 (scroll2)
            bit 3: copy page 3 (scroll3)
            bit 4: copy page 4 (stars1)
            bit 5: copy page 5 (stars2)

            An important quirk is that if the first bits are not set, page 0 in
            gfxram is not skipped but instead is copied to the first enabled page.
            For the other pages, if the bit is not set the gfxram page is skipped.
            Example: 0x0a
            bit 0 is not set so palette page 0 (sprites) is not updated
            bit 1 is set so palette page 1 (scroll1) is updated; since bit 0 was
            not set, it is taken from gfxram page 0
            bit 2 is not set so palette page 2 (scroll2) is not updated; gfxram
            page 1 is skipped
            bit 3 is set so palette page 3 (scroll3) is updated; it is taken from
            gfxram page 2

            bits 0-3 have been verified on a msword pcb, while bits 4-5 are only
            supposed.


Les CPS B sont relativement identiques selon la version, mais change surtout :
  • Les adresses d'accès aux registres des priority mask
  • L'adresse d'accès à la palette
  • L'adresse d'accès aux contrôles de layers
  • Les masques d'activation des layers
  • D'autres choses sur les protections de multiplication (non utile dans willow)

Par exemple, dans le CPS-B-03 de willow:
#define CPS_B_03      -1, 0x0000,          __not_applicable__,          0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x20,0x10,0x08,0x00,0x00}
Ce qu'il faut savoir c'est que l'adresse de base du CPS B est 0x800140 pour la majorité des jeux.

Pour les palettes, nous avons donc comme adresse :
0x800140 + 0x26  =  0x800166

Pour l'adresse d'accès aux contrôles de layers :
0x800140 + 0x30  =  0x800170

Pour les adresses des priority mask :
Priority mask 0 : 0x800140 + 0x2e   =   0x80016e
Priority mask 1 : 0x800140 + 0x2c   =   0x80016c
Priority mask 2 : 0x800140 + 0x2a   =   0x80016a
Priority mask 3 : 0x800140 + 0x28   =   0x800168

Jusque là vous allez me dire, c'est ce que dlfrsilver, mais bon, ce coup ci je comprends d'où sortent ces valeurs.

Par contre, pour ce qu'il faut écrire dans le registre d'ordre des layers, pour moi c'est légèrement différent, mais bon je ne suis pas sûr..
Exemple dans willow, il y a une écriture en 0x800170 de la valeur 0x13b8 de cette façon :
000018EA: 33ED 004A 0080  move.w  ($4a,A5), $800170.l
          0170
($4a,A5) est préchargé avant avec 0x13b8.

Ce que l'on peut voir dans mame c'est que dans le "Layer control register", seuls les bits 1 à 5 peuvent changer d'une révision de PPU à l'autre.

Et justement dans notre exemple, les autres bits doivent avoir une importance, il ne faudrait donc pas utiliser 0x12C0 comme valeur de base mais plutôt repartir de la valeur écrite dans la rom originale (0x13b8), y regarder quel layer sont activés, faire un masque pour mettre à 0 les bits 1 à 5 (faire un et binaire avec 0xFFC1) et ensuite, utiliser les masques de layers du nouveau PPU.

Exemple, pour utiliser avec la C board de SF2CE :

Valeur d'origine dans willow :
0x13B8 = 0b0001001110111000

Les masques d'activations des layer de willow :
11111100 00000000
54321098 76543210
layer1 0x20 = 00000000 00100000   ==>  D5
layer2 0x10 = 00000000 00010000   ==>  D4
layer3 0x08 = 00000000 00001000   ==>  D3
layer4 0x00 = 00000000 00000000
layer5 0x00 = 00000000 00000000

On voit donc que les layer 1, 2, 3 sont activées

On met à zero les bits
0x13b8 & 0xFFC1 = 0x1380

Sur la C board de SF2:
layer1 0x02 = 00000000 00000010  ==>  D1
layer2 0x04 = 00000000 00000100  ==>  D2
layer3 0x08 = 00000000 00001000  ==>  D3
layer4 0x30 = 00000000 00110000  ==>  D4+D5
layer5 0x30 = 00000000 00110000  ==>  D4+D5

Et pour obtenir la valeur finale, on passe à 1 les bits correspondants à l'activation des layers, donc
0x1380 | 0b00000000 00001110 = 0x138E

Qu'en pensez vous ?
« Modifié: Mercredi 26 Juin 2013, 23:42:56 pm par aje_fr »
Think different, don't purchase Apple !

Hors ligne nc333

  • VIP
  • *
  • Messages: 1653
  • Jeune padawan de l'arcade
    • Voir le profil
    • Nc333 - Bordel diverse et avarié
[WIP] Bricolage sur CPS1
« Réponse #42 le: Jeudi 27 Juin 2013, 10:02:58 am »
Qu'en pensez vous ?
Tout a fait logique mon chère :D

Super boulot, juste une question, d'après toi, quelle serais le coups en eprom pour ce montage ?
"Bon, j'ai pas mal réfléchi. Quand la vie vous fait trébucher, ça ne suffit pas de se relever. Il faut lui péter les rotules, à cette grognasse ! Œil pour œil, dent pour dent ! « Essaie un peu de te relever, maintenant, traînée ! »" Caves Johnson, 1980

La présentation c'est ICI :)

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #43 le: Jeudi 27 Juin 2013, 23:35:13 pm »
@nc333 en fait je crois qu'il ne vas pas falloir que des EPROM mais des composants plus chiadés, genre du CPLD ou autre pour le décodage des adresses de tous les jeux.

Sinon  :-)= :-)= :-)= :-)=
Willow semble fonctionner à 100% sous emulateur en le faisant fonctionner avec une c board de SF2CE !!!
Reste plus qu'à le claquer dans les EPROMS pour vérifier tout ça.

La théorie était bonne c'était la mise en pratique qui n'était pas tout à fait conforme  :-\
Voici ce que j'avais oublié.
En fait, dans le CPS1, le PPU semble être rafraichi à chaque nouvelle trame.
Mais par contre, les registres à lui affecter sont eux modifiés pendant cette trame dans une valeur temporaire.
Et au moment du passage à la nouvelle cette valeur temporaire est transféré au PPU.
Voici la fameuse instruction :
000018EA: 33ED 004A 0080  move.w  ($4a,A5), $800170.l
          0170

La valeur temporaire est donc ($4a,A5) qui correspond à l'adresse contenue dans A5 (il faut le prendre comme un pointeur) plus la valeur 0X4A. En fait on tombe sur une case de la RAM.

Maintenant il a fallu chercher dans tout le code où cette valeur temporaire était modifiée.

Un exemple simple, la valeur est affectée par une valeur fixe :
000005C8: 3B7C 12F8 004A  move.w  #$12f8, ($4a,A5)

Un exemple plus compliqué :
0002B794: 302D 004A       move.w  ($4a,A5), D0
0002B798: 3200            move.w  D0, D1
0002B79A: 0240 003F       andi.w  #$3f, D0
0002B79E: 323C 13B8       move.w  #$13b8, D1
0002B7A2: 8041            or.w    D1, D0
0002B7A4: 3B40 004A       move.w  D0, ($4a,A5)
On voit que la valeur temporaire est chargée dans D0 puis D0 est transféré dans D1 qui subit un ET binaire avec 0x3F, D1 est reaffecté à 0x13B8 et ensuite un ou binaire est fait entre D1 et D0. D0 qui est ensuite réaffecté à la valeur temporaire.
Ouf... Eh bien, il faut aussi modifier ça car l'affectation de D1 ne correspond pas entre une C board rev 3 et une C board rev 21.

Voilà voilà... Ca ne s'invente pas mais il y a en tout 36 octets à modifier dans le code.  :P

Je fais une vidéo dès que j'ai claqué willow en EPROM et recodé la GAL correspondante.

A+
« Modifié: Jeudi 27 Juin 2013, 23:41:40 pm par aje_fr »
Think different, don't purchase Apple !

Hors ligne dlfrsilver

  • Intéressé
  • *
  • Messages: 22
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #44 le: Vendredi 28 Juin 2013, 00:56:17 am »
@nc333 en fait je crois qu'il ne vas pas falloir que des EPROM mais des composants plus chiadés, genre du CPLD ou autre pour le décodage des adresses de tous les jeux.

Sinon  :-)= :-)= :-)= :-)=
Willow semble fonctionner à 100% sous emulateur en le faisant fonctionner avec une c board de SF2CE !!!
Reste plus qu'à le claquer dans les EPROMS pour vérifier tout ça.

La théorie était bonne c'était la mise en pratique qui n'était pas tout à fait conforme  :-\
Voici ce que j'avais oublié.
En fait, dans le CPS1, le PPU semble être rafraichi à chaque nouvelle trame.
Mais par contre, les registres à lui affecter sont eux modifiés pendant cette trame dans une valeur temporaire.
Et au moment du passage à la nouvelle cette valeur temporaire est transféré au PPU.
Voici la fameuse instruction :
000018EA: 33ED 004A 0080  move.w  ($4a,A5), $800170.l
          0170

La valeur temporaire est donc ($4a,A5) qui correspond à l'adresse contenue dans A5 (il faut le prendre comme un pointeur) plus la valeur 0X4A. En fait on tombe sur une case de la RAM.

Maintenant il a fallu chercher dans tout le code où cette valeur temporaire était modifiée.

Un exemple simple, la valeur est affectée par une valeur fixe :
000005C8: 3B7C 12F8 004A  move.w  #$12f8, ($4a,A5)

Un exemple plus compliqué :
0002B794: 302D 004A       move.w  ($4a,A5), D0
0002B798: 3200            move.w  D0, D1
0002B79A: 0240 003F       andi.w  #$3f, D0
0002B79E: 323C 13B8       move.w  #$13b8, D1
0002B7A2: 8041            or.w    D1, D0
0002B7A4: 3B40 004A       move.w  D0, ($4a,A5)
On voit que la valeur temporaire est chargée dans D0 puis D0 est transféré dans D1 qui subit un ET binaire avec 0x3F, D1 est reaffecté à 0x13B8 et ensuite un ou binaire est fait entre D1 et D0. D0 qui est ensuite réaffecté à la valeur temporaire.
Ouf... Eh bien, il faut aussi modifier ça car l'affectation de D1 ne correspond pas entre une C board rev 3 et une C board rev 21.

Voilà voilà... Ca ne s'invente pas mais il y a en tout 36 octets à modifier dans le code.  :P

Je fais une vidéo dès que j'ai claqué willow en EPROM et recodé la GAL correspondante.

A+

c'est super, tu as bien avancé :)

Par contre, là ou c'est pas bon, c'est par rapport à la valeur $13B8.

la valeur de base pour le layer CTRL c'est de base $12C0 auxquel tu rajoutes la valeur comme indiqué
dans le driver de mame. il est impossible d'avoir $13XX dans le layer control. regardes par toi même
dans le tableau du driver vidéo de mame, tu ne trouveras jamais cette valeur.

Il ne faut de fait en aucun cas la toucher. Si tu vas créer des erreurs graphiques, ou encore éléments n'apparaitront pas.

En tout cas, je suis très intéressé par ton sniffeur pour mame (contacte moi par PM).

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #45 le: Vendredi 28 Juin 2013, 13:24:29 pm »
c'est super, tu as bien avancé :)

Par contre, là ou c'est pas bon, c'est par rapport à la valeur $13B8.

la valeur de base pour le layer CTRL c'est de base $12C0 auxquel tu rajoutes la valeur comme indiqué
dans le driver de mame. il est impossible d'avoir $13XX dans le layer control. regardes par toi même
dans le tableau du driver vidéo de mame, tu ne trouveras jamais cette valeur.

Il ne faut de fait en aucun cas la toucher. Si tu vas créer des erreurs graphiques, ou encore éléments n'apparaitront pas.

En tout cas, je suis très intéressé par ton sniffeur pour mame (contacte moi par PM).

Salut,
 Comme je l'ai noté plus haut, sur ce point, je ne suis pas tout à fait d'accord avec toi.
 Pour moi 0x12C0 n'est pas du tout une référence à prendre, bien au contraire.
 En effet, il ne faut pas raisonner en terme de valeur numérique mais en terme de bits de cette valeur.
 Mame nous dit ceci :
0x66-0x67   Layer control register
            bits 14-15 seem to be unused
                ghouls sets bits 15 in service mode when you press button 2 in
                the input test, with no apparent effect on the pcb.
                qtono2j sets them both at the game over screen.
            bits 6-13 (4 groups of 2 bits) select layer draw order
            bits 1-5 enable the three tilemap layers and the two starfield
                layers (the bit order changes from game to game).
                Only Forgotten Worlds and Strider use the starfield.
            bit 0 could be rowscroll related. It is set by captain commando,
                varth, mtwins, mssword, cawing while rowscroll is active. However
                kodj and sf2 do NOT set this bit while they are using rowscroll.
                Tests on the msword pcb show that even if this bit is not set,
                rowscroll still works. Therefore, the purpose of this bit is unclear.
Seuls les bits de 1 à 5 changent en fonction de la révision du PPU. Donc uniquement ceux ci sont à adapter et modifier.
 Il ne faut surtout pas toucher aux autres.
 Si par exemple tu as une valeur 0x13XX envoyée au PPU, tu ne peux pas la remplacer par 0x12XX car tu viens modifier le bit 9 qui gère l'ordre d'affichage des layer.
 Peut être que sur certains jeux l'ordre d'affichage est toujours le même dans tout le programme ce qui fait que tu retombes toujours sur 0x12C0 comme valeur de base mais ce n'est pas le cas de tous, willow en est la preuve.
A bientôt
Think different, don't purchase Apple !

Hors ligne Bonky0013

  • Pensionnaire
  • *
  • Messages: 28
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #46 le: Vendredi 28 Juin 2013, 14:03:55 pm »
Vous assurez les gars ^^

Je suis ça avec attention  ^-^


ps : dlfrsilver si tu peu me Mp sur AA , il y a des sets jap que j'ai testé sur hardware et qui fonctionne nickel ;)
« Modifié: Vendredi 28 Juin 2013, 14:38:54 pm par Bonky0013 »

Hors ligne aje_fr

  • Famille
  • *
  • Messages: 1159
    • Voir le profil
[WIP] Bricolage sur CPS1
« Réponse #47 le: Dimanche 30 Juin 2013, 01:24:17 am »
Ca avance, ça avance  :D
Reprogrammation des eproms :


Varth US :



Varth Jap :



Area 88 jap :



Final Fight :



Capcom World Quiz 2 :




Il manque encore willow qui fonctionne avec la nouvelle PPU mais j'ai encore un soucis au niveau du GAL et peut être d'une incompatibilité avec la b board.

A bientôt pour la suite ;-)
Think different, don't purchase Apple !