Gamoover

[move]Vous aimez la série Ricky la belle vie, Julio Iglésias ou l'émission Kohlanta ? Alors soyez les bienvenus sur Gamoover ! [/move]

[RESOLU] CPS1 : Conversion de Quiz Tonosama no Yabou 2 en Daimakaimura

Démarré par aje_fr, Jeudi 02 Mai 2013, 01:51:57 AM

aje_fr

Salut à tous'
Voilà, j'aimerais bien me faire un petit Daimakaimura (Ghouls'n Ghosts) sur CPS1.
Mais je n'ai que de "sacrificielle" une PCB de "Quiz: Tonosama no Yabō 2" sur une B board 90629B-3.
Normalement pour faire cette conversion, il aurait fallu une B board de SF2 de type 91634B-2.
Je sais, vous allez dire, si ça marche pas, c'est normal, t'as pas la bonne, mais bon, en parcourant un peu le net, je suis tombé sur un forum US qui parlait d'une convert faite à partir d'un king of dragon (et donc de la même B board que moi)
Exemple de ma b board :


Comme la B board est différente, le GAL n'est donc pas compatible (en vérifiant sur un SF, j'ai suivi les pistes de CE et OE des Proms et sur la mienne tout n'est pas câblé)
Je me suis donc dit d'utiliser la GAL de Quiz.
En parcourant les sources de Mame, on tombe sur des choses intéressantes :

"Quiz: Tonosama no Yabō 2"

ROM_REGION( 0x400000, "gfx", 0 )
ROMX_LOAD( "tn2-02m.4a", 0x000000, 0x80000, CRC(f2016a34) SHA1(3862960fa14742547f6a6deacf0b9f409d08fee8) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-04m.6a", 0x000002, 0x80000, CRC(094e0fb1) SHA1(7c9a9a7d03e226109002dd389c872e3d4be43287) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-01m.3a", 0x000004, 0x80000, CRC(cb950cf9) SHA1(8337a500141c1aec82b6636ad79ecafbdbebd691) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-03m.5a", 0x000006, 0x80000, CRC(18a5bf59) SHA1(afbfcb28c40551747bb5276aac2b9c15a24328e1) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-11m.4c", 0x200000, 0x80000, CRC(d0edd30b) SHA1(a76d7f134f9e52f79a485402d17dcc7a1fe99f29) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-13m.6c", 0x200002, 0x80000, CRC(426621c3) SHA1(89156bc9d585f546cd619db419dd1f4d9871d930) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-10m.3c", 0x200004, 0x80000, CRC(a34ece70) SHA1(15864d6b280f624245add8a611f1699da570392b) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tn2-12m.5c", 0x200006, 0x80000, CRC(e04ff2f4) SHA1(774c19909a2ae2c691f5d3f15b6e19cc94baf799) , ROM_GROUPWORD | ROM_SKIP(6) )


"Daimakaimura (Ghouls'n Ghosts)"

ROM_REGION( 0x400000, "gfx", 0 )
ROMX_LOAD( "dam_01.3a",  0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) )    // == dm-05.3a
ROMX_LOAD( "dam_02.4a",  0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) )    // == dm-07.3f
ROMX_LOAD( "dam_03.5a",  0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) )    // == dm-06.3c
ROMX_LOAD( "dam_04.6a",  0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) )    // == dm-08.3g
ROMX_LOAD( "dam_05.7a",  0x200000, 0x80000, CRC(7dc61b94) SHA1(7796bae7555c541b3c80aacfa24788aeb2ccdfd5) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "dam_06.8a",  0x200002, 0x80000, CRC(fde89758) SHA1(9a6192f629cd1e74e225ef7426338c2816c6b977) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "dam_07.9a",  0x200004, 0x80000, CRC(ec351d78) SHA1(1005a83be4b5577612143ae7f64ca4a08aae7959) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "dam_08.10a", 0x200006, 0x80000, CRC(ee2acc1e) SHA1(4628a9b2447266349d97132003992a21e2bb423a) , ROM_GROUPWORD | ROM_SKIP(6) )


On peut constater que les deux utilisent la même région de base pour les graphismes (0x400000) et aussi des offsets communs : 0x000000 / 0x000002 / 0x000004 / 0x000006 / 0x200000 / 0x200002 / 0x200004 / 0x200006
Par contre, on constate que les PROMS ne sont pas dans le même ordre,

"Quiz: Tonosama no Yabō 2"

PROM 2 en   0x400000 + 0x000000
PROM 4 en   0x400000 + 0x000002
PROM 1 en   0x400000 + 0x000004
PROM 3 en   0x400000 + 0x000006
PROM 11 en  0x400000 + 0x200000
PROM 13 en  0x400000 + 0x200002
PROM 10 en  0x400000 + 0x200004
PROM 12 en  0x400000 + 0x200006


"Daimakaimura (Ghouls'n Ghosts)"

PROM 1 en  0x400000 + 0x000000
PROM 2 en  0x400000 + 0x000002
PROM 3 en  0x400000 + 0x000004
PROM 4 en  0x400000 + 0x000006
PROM 5 en  0x400000 + 0x200000
PROM 6 en  0x400000 + 0x200002
PROM 7 en  0x400000 + 0x200004
PROM 8 en  0x400000 + 0x200006


Il m'a suffit de "mixer" tout ça en mettant :

Daimakaimura PROM 1 -> Quiz position 2
Daimakaimura PROM 2 -> Quiz position 4
Daimakaimura PROM 3 -> Quiz position 1
Daimakaimura PROM 4 -> Quiz position 3
Daimakaimura PROM 5 -> Quiz position 11
Daimakaimura PROM 6 -> Quiz position 13
Daimakaimura PROM 7 -> Quiz position 10
Daimakaimura PROM 8 -> Quiz position 12


J'utilise des 27C4096, je place donc aux endroits adéquat (la 1 en PROM correspond à la 5 en EPROM, etc)

Daimakaimura PROM 1 -> Quiz position 6
Daimakaimura PROM 2 -> Quiz position 8
Daimakaimura PROM 3 -> Quiz position 5
Daimakaimura PROM 4 -> Quiz position 7
Daimakaimura PROM 5 -> Quiz position 15
Daimakaimura PROM 6 -> Quiz position 17
Daimakaimura PROM 7 -> Quiz position 14
Daimakaimura PROM 8 -> Quiz position 16


Jusque là, vous me suivez j'espère  :)

Bref, EPROM son au bon endroit, EPROM code aussi, je démarre, et....
Ca marchotte...

J'ai des soucis au niveau des sprites de la démo (la princesse, les coeurs qui s'envolent, les dragons, le cheval qui traverse, les paysans morts, etc...)
Par contre, le premier niveau est quasiment parfait, juste le sprite quand on meurt qui ne fonctionne pas.

Quelqu'un a t il déjà tenté l'expérience sur ce type de PCB ?

Est-ce comme sur MVS où le code microprocesseur n'est écrit que pour certaine type de cartouches (la CHA de supersidekicks 1 par exemple) ?

A bientôt
Think different, don't purchase Apple !

yannick60

Salut j'ai déja eu ce type de pb pour une conversion sur un sf2 ce,l'ordre des eproms est différent entre les version jap et us.Les eproms 2 et 3 ainsi que 5 et 6 sont à inversé.
Après j'ai pas creusé le code dans ton cas mais c'est peut-être une piste.

aje_fr

Think different, don't purchase Apple !

aje_fr

Ca y est !!!!  =:))

Alors quelques explications, ça peut toujours servir à d'autres.  ;)

J'avais une B board de SF2 n'utilisant que des PROM (91635B-2), j'ai donc pu mesurer les liaisons se faisant entre les /CE des PROM, les données, les adresses du bus et le GAL comme cette board ressemble fortement à celle originale de Daimakaimura ou celle utilisée pour les convert.

Voici donc le câblage des PROM de SF2:

PROM 1 :              PROM 9 :
  CE : 1CE              CE : 1CE
  OE : GAL 19           OE : GAL 15
  BUS DATA : A          BUS DATA : A
PROM 2 :              PROM 10 :
  CE : 2CE              CE : 2CE
  OE : GAL 18           OE : GAL 14
  BUS DATA : A          BUS DATA : A
PROM 3 :              PROM 11 :
  CE : 1CE              CE : 1CE
  OE : GAL 19           OE : GAL 15
  BUS DATA : B          BUS DATA : B
PROM 4 :              PROM 12 :
  CE : 2CE              CE : 2CE
  OE : GAL 18           OE : GAL 14
  BUS DATA : B          BUS DATA : B
PROM 5 :              PROM 13 :
  CE : 1CE              CE : 1CE
  OE : GAL 17           OE : GAL 13
  BUS DATA : A          BUS DATA : A
PROM 6 :              PROM 14 :
  CE : 2CE              CE : 2CE
  OE : GAL 16           OE : GAL 12
  BUS DATA : A          BUS DATA : A
PROM 7 :              PROM 15 :
  CE : 1CE              CE : 1CE
  OE : GAL 17           OE : GAL 13
  BUS DATA : B          BUS DATA : B
PROM 8 :              PROM 16 :
  CE : 2CE              CE : 2CE
  OE : GAL 16           OE : GAL 12
  BUS DATA : B          BUS DATA : B


Et le câblage des PROM/EPROM de quiz:

PROM 1/ EPROM 5 :     PROM 10/ EPROM 14 :   PROM 20/ EPROM 24 :
  CE : 2CE              CE : 2CE              CE : 2CE
  OE : GAL 19           OE : GAL 14           OE : GAL 12
  BUS DATA : A          BUS DATA : A          BUS DATA : A
PROM 2/ EPROM 6 :     PROM 11/ EPROM 15 :   PROM 21/ EPROM 25 :
  CE : 1CE              CE : 1CE              CE : 1CE
  OE : GAL 19           OE : GAL 14           OE : GAL 12
  BUS DATA : A          BUS DATA : A          BUS DATA : A
PROM 3/ EPROM 7 :     PROM 12/ EPROM 16 :   PROM 22/ EPROM 26 :
  CE : 2CE              CE : 2CE              CE : 2CE
  OE : GAL 19           OE : GAL 14           OE : GAL 12
  BUS DATA : B          BUS DATA : B          BUS DATA : B
PROM 4/ EPROM 8 :     PROM 13/ EPROM 17 :   PROM 23/ EPROM 27 :
  CE : 1CE              CE : 1CE              CE : 1CE
  OE : GAL 19           OE : GAL 14           OE : GAL 12
  BUS DATA : B          BUS DATA : B          BUS DATA : B


En recoupant les données / CE / OE, je retombe sur le même placement des PROM que celui retrouvé grâce à mame, c'est à dire :

Daimakaimura PROM 1 -> Quiz position 6
Daimakaimura PROM 2 -> Quiz position 8
Daimakaimura PROM 3 -> Quiz position 5
Daimakaimura PROM 4 -> Quiz position 7
Daimakaimura PROM 5 -> Quiz position 15
Daimakaimura PROM 6 -> Quiz position 17
Daimakaimura PROM 7 -> Quiz position 14
Daimakaimura PROM 8 -> Quiz position 16

Bonne nouvelle donc !



Maintenant le GAL (le plus dur)

Grâce à un petit logiciel trouvé sur cette page :
http://www.brouhaha.com/~eric/retrocomputing/mmi/palasm/
(Opal Jr en bas de la page)
j'ai pu décompiler le GAL original de Daimakaimura Resale :

; JED2EQN -- JEDEC file to Boolean Equations disassembler (Version V063)
; Copyright (c) National Semiconductor Corporation 1990-1993
; Disassembled from dam63b.jed. Date: 5-4-113
;$GALMODE SMALL

chip dam63b GAL16V8

OEB=1 A22=2 A21=3 A20=4 A19=5 A18=6 A17=7 A16=8 A15=9 GND=10 /IN74=11 o12=12
o13=13 o14=14 o15=15 o16=16 o17=17 o18=18 o19=19 VCC=20

@ues 0000000000000000
@ptd unused

equations

/o19 = /A22 * /OEB * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * IN74
    + /A22 * OEB * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * /IN74
    + /A22 * /OEB * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * IN74
    + /A22 * /OEB * A21 * /A20 * /A19 * /A18 * A17 * IN74
    + /A22 * OEB * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * /IN74
    + /A22 * OEB * A21 * /A20 * /A19 * /A18 * A17 * /IN74
/o18 = /A22 * /OEB * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * IN74
    + /A22 * OEB * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * /IN74
    + /A22 * /OEB * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * IN74
    + /A22 * /OEB * A21 * /A20 * /A19 * /A18 * A17 * IN74
    + /A22 * OEB * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * /IN74
    + /A22 * OEB * A21 * /A20 * /A19 * /A18 * A17 * /IN74
/o17 = /A22 * /OEB * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * IN74
    + /A22 * OEB * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * /IN74
    + /A22 * /OEB * A21 * A20 * IN74
    + /A22 * OEB * A21 * A20 * /IN74
/o16 = /A22 * /OEB * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * IN74
    + /A22 * OEB * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * /IN74
    + /A22 * /OEB * A21 * A20 * IN74
    + /A22 * OEB * A21 * A20 * /IN74
o15 = /OEB * IN74
    + OEB * /IN74
o14 = /OEB * IN74
    + OEB * /IN74
o13 = OEB * IN74
    + /OEB * /IN74
o12 = OEB * IN74
    + /OEB * /IN74

J'ai renommé les adresses pour plus de clarté, IN74 étant un signal provenant d'un 7474 en dessous la C board.
Coup de chance on voit que O19 et O18 sont commandés de la même façon de même pour O17 et O16.
Ca tombe bien car sur la B board de quiz, les /CE des PROM commandent 4 PROM à chaques coup.

Ensuite il a fallu repérer comment était câblé le GAL sur la B Board de quiz, quelques coups de multimètre plus tard :

                             ._____    _____.
                             |     \__/     |
                         ROE |  1        20 | VCC
                         A22 |  2        19 | CE2
                         A21 |  3        18 | o18
                         A20 |  4        17 | /IN74
                         A19 |  5        16 | o16
                         A18 |  6        15 | A12
                         A17 |  7        14 | CE1
                         A16 |  8        13 | A13
                         A15 |  9        12 | CE0
                         GND | 10        11 | A14
                             |______________|


(diagramme issu de la recompilation)

Il ne fallait ensuite plus qu'à créer un nouveau code pour ce nouveau brochage.

Et donc le voici :

chip AJE_FR GAL16V8D

;1      2       3       4       5      6      7        8       9       10
ROE=1   A22=2   A21=3   A20=4   A19=5  A18=6  A17=7    A16=8   A15=9   GND=10
A14=11  CE0=12  A13=13  CE1=14  A12=15 o16=16 /IN74=17  o18=18  CE2=19  VCC=20
;11     12      13      14      15     16     17       18      19      20

equations

/CE1 = /A22 * /ROE * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * IN74
    + /A22 * ROE * /A21 * /A20 * /A19 * /A18 * /A17 * A16 * /IN74
    + /A22 * /ROE * A21 * A20 * IN74
    + /A22 * ROE * A21 * A20 * /IN74

/CE2 = /A22 * /ROE * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * IN74
    + /A22 * ROE * /A21 * A20 * /A19 * /A18 * /A17 * A16 * /A15 * /IN74
    + /A22 * /ROE * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * IN74
    + /A22 * /ROE * A21 * /A20 * /A19 * /A18 * A17 * IN74
    + /A22 * ROE * /A21 * /A20 * /A19 * /A18 * /A17 * /A16 * /IN74
    + /A22 * ROE * A21 * /A20 * /A19 * /A18 * A17 * /IN74

;A garder pour mettre en entrée correctement
/IN74 = gnd
IN74.oe = gnd

J'ai fait un peu le ménage dedans car tout n'était pas utilisé.


Et voilà le résultat :
http://youtu.be/TJUs2q-Eyk4

Le placement des EPROM :
/!\ Il faut bien prendre le ROM set original et non d'autre


Et me voilà donc avec un convert de Daimakaimura fonctionnel sur une B board de Quiz: Tonosama no Yabo 2 - Zenkoku-ban avec une B board 90629B-3 !!!

Mieux vaut sacrifier ce jeu qu'un SF2 !
Think different, don't purchase Apple !

maldoror68

technique mais bien joué. c'est vrai que c'est un titre moins cher qu'un SF2  ^-^

f4brice


Runik


Iro

Excellent !!!
En effet , c'est mieux que de sacrifier un SF2
:)

tu partages le nouveau gal ou pas ?
"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 - Ma collec' de panels

LES TUTOS DE GAMO   

aje_fr

#8
Merci  :-\

En fait ce qu'il faut savoir c'est que ce GAL n'est pas du tout une protection mais uniquement le décodage d'adresse de la partie graphique, il permet de "mapper" les PROM aux bons espaces mémoire.

Fichier en MP pour les membres Gamoover  :D
Think different, don't purchase Apple !

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 - Ma collec' de panels

LES TUTOS DE GAMO   

aje_fr

Think different, don't purchase Apple !

kaneda56

Donne le en private alors, autrement on va assister à une ruée sur les quizz tonosama no yabou ::)

n'empeche.... :ang:

hey les poussins... :ang: :ang: :ang:

VOUS TROUVEZ PAS QUE LA SCENE ARCADE FRANCAISE DECHIIIIIIIIRE EN CE MOMENT??????!!!!!!  :-)= :-)= :-)= :-)= :-)= :-)= :-)=

Entre:
la découverte des menus cachés du moniteur toshiba qui équipe les new net city et la construction de la pcb custom.
Le montage L2M2 d'aganyte
le wip de gcc339 sur une piece Taito propriétaire introuvable (PC040DA)
BigPanik qui a fait le reverse enginering du force feedback model3
Aganyte encore qui trouve une solution de remplacement pour les guns de Naomi
Et Aje-fr qui nous sort un décorticage et une convertion d'un cps1 méconnu (et pas terrible du reste).

Mais bravo les gars! Merci pour votre travail de fou et vos WIP que vous nous faites partager!

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

Iro

Citation de: aje_fr le Mardi 07 Mai 2013, 11:14:21 AM
A usage perso, pas de business là dessus  ;)
Moi ? Je fais pas de business, je n'ai pas le temps :D
Surtout sur un truc qui ne m'appartient pas :)

"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 - Ma collec' de panels

LES TUTOS DE GAMO   

Iro

Citation de: kaneda56 le Mardi 07 Mai 2013, 11:43:46 AM
la découverte des menus cachés du moniteur toshiba qui équipe les new net city et la !
tu as un lien ? <:)
"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 - Ma collec' de panels

LES TUTOS DE GAMO   

kaneda56


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

aje_fr

#15
Citation de: kaneda56 le Mardi 07 Mai 2013, 11:43:46 AM
Donne le en private alors, autrement on va assister à une ruée sur les quizz tonosama no yabou ::)
Tu as raison, fichier en MP pour les membres Gamoover, sinon ça vas finir sur les forums ricain et des tonnes de pauvres quiz vont finir dépouiller  :D
Au moins avec des SF2, vu le coup, ça freine un peu plus.

Citation de: kaneda56 le Mardi 07 Mai 2013, 11:43:46 AM
...
Mais bravo les gars! Merci pour votre travail de fou et vos WIP que vous nous faites partager!
D'ailleurs tu as oublié runik et le décodage des FD01094
Et encore.... D'autres choses sont à venir  ;)
Think different, don't purchase Apple !