Gamoover

Forums " WORKSHOP" => Jeux : Pcb & Systèmes arcadiens => CPS1 => Discussion démarrée par: aje_fr le Dimanche 09 Juin 2013, 23:01:53 PM

Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 09 Juin 2013, 23:01:53 PM
Salut à tous'
Micro teasing sur un de mes WIP sur CPS1.
Que peut on faire avec ceci :
(http://imageshack.us/a/img19/2859/sany0799l.jpg)
et ceci :
(http://imageshack.us/a/img109/7892/sany0800r.jpg)
Celui qui me dira une conversion, n'aura pas forcément raison ni tort.
Bon, je sais, c'est relativement simple à trouver, mais bon...
A+
Titre: [WIP] Teasing CPS1
Posté par: lorenzolamas le Dimanche 09 Juin 2013, 23:40:27 PM
un all cps1 in one? ^^
Titre: [WIP] Teasing CPS1
Posté par: EK-TOMB le Dimanche 09 Juin 2013, 23:59:35 PM
bonjour, et bien si j'entends CPS1 je me dit une conversion"Ghosts'n Goblins" surtout partant d'une street fighter 2  :-\
mais ce message "Celui qui me dira une conversion, n'aura pas forcément raison ni tort." et le nombre d'éprome me parait énorme alors  ::)
Titre: [WIP] Teasing CPS1
Posté par: _n3o_ le Lundi 10 Juin 2013, 08:23:12 AM
un XXXin1 CPS1 bien sur ;)   ^-^
Titre: [WIP] Teasing CPS1
Posté par: funkycochise le Lundi 10 Juin 2013, 08:48:49 AM
 :-*

Qui disait que la scène frenchy de l'arcade claquait sa race ces derniers temps ?
Titre: [WIP] Teasing CPS1
Posté par: kaneda56 le Lundi 10 Juin 2013, 09:19:12 AM
Citation de: funkycochise le Lundi 10 Juin 2013, 08:48:49 AM
:-*

Qui disait que la scène frenchy de l'arcade claquait sa race ces derniers temps ?

Je sais plus mais il avait sacrément raison (comme toujours  8))
Je vais suivre ça avec attention ^-
Titre: [WIP] Teasing CPS1
Posté par: aje_fr le Lundi 10 Juin 2013, 18:07:13 PM
Eh oui, c'était trop simple à trouver  :D
Donc voilà, un petit 8 in 1 en préparation.
Dans le principe, c'est ultra basique, on mets des EPROMS 8x plus grosses et on active les adresses les plus hautes en fonction du jeu que l'on souhaite.
Je suis parti sur des bonnes vieilles 27C322 qui sont quasiment pin à pin compatibles avec les PROMS graphiques sur mon SF2.
Pour ce qui est des EPROMS programme, j'ai pour le moment fait un adaptateur 27C4096 -> 27C322
Le PAL graphique a été remplacé par un plus couillu.
Je ne me suis pas encore occupé de la partie son, je verrais ça plus tard.

Aucun fil de soudé directement sur la mobo, tout est sur support et démontable ultérieurement.
Pour le moment c'est vraiment artisanal, je remettrais ça au propre plus tard.

Quelques photos de l'avancement :

Comment adapter des 27C322 (isoler la patte A20 et poser un support 42 broches par dessus):
(http://imageshack.us/a/img534/8722/sany0802.jpg)

L'adaptateur pour les EPROM programme :
(http://imageshack.us/a/img547/1097/sany0817.jpg)
avec la déviation pour les CS / OE
(http://imageshack.us/a/img405/2177/sany0818.jpg)

La GAL un peu plus péchu :
(http://imageshack.us/a/img9/3406/sany0819q.jpg)

Et l'ensemble : (on voit les inters pour sélectionner le jeu)
(http://imageshack.us/a/img705/7235/sany0816w.jpg)

J'en suis à l'étape programmation de la GAL.
Pour le moment SF2 démarre sans soucis, Daimakaimura aussi, et il faut que je continue pour les autres   :D
Titre: [WIP] Teasing CPS1
Posté par: Geek vintage le Lundi 10 Juin 2013, 18:10:49 PM
Je suis sur le c..  :o

Bravo !
Titre: [WIP] Teasing CPS1
Posté par: olschool le Lundi 10 Juin 2013, 19:22:27 PM
Ben ça alors ....

^-

bravo

question bête est tu limité dans le choix des titres ?
Titre: [WIP] Teasing CPS1
Posté par: speedsterharry le Lundi 10 Juin 2013, 19:28:38 PM
Excellent ! Comment comptes-tu faire la sélection du jeu ? Via un dipswitch sur ta carte ou alors un truc en soft (je ne sais pas si le GAL permet de faire ca) ?
Titre: [WIP] Teasing CPS1
Posté par: aje_fr le Lundi 10 Juin 2013, 19:40:06 PM
Pour le moment, je me limite pour les tests aux jeux compatibles avec ma C-board.
Je ne me suis pas encore assez documenté pour connaitre la compatibilité entre des C board plus récente et des jeux plus anciens. Je pense qu'au pire il faudrait recoder pour utiliser les registres adéquat, mais bon, on verra ça plus tard.
La sélection des jeux, peut être un OSD, on verra.
Allez, un de plus "knight of the round"
A+
Titre: [WIP] Bricolage sur CPS1
Posté par: olschool le Lundi 10 Juin 2013, 19:43:45 PM
 :-*

C'est excellent surtout que les 18 in 1 sont introuvables sur le net


:-)=
Titre: [WIP] Bricolage sur CPS1
Posté par: Aganyte le Lundi 10 Juin 2013, 20:34:42 PM
Bien joué  ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: TylerDurden67 le Lundi 10 Juin 2013, 21:48:29 PM
Excellent !

J'avais commencé une bidouille du genre mais sur cps2
Moi,c'est plutôt software que hardware :-)
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Lundi 10 Juin 2013, 21:52:31 PM
Superbe !!!
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Lundi 10 Juin 2013, 23:33:32 PM
Merci,
Pour le moment, ce qui marche
- Street Fighter 2 CE
- Daimakaimura
- Knight of the round
- Cadillac & dinosaurs (qui risque de ne pas avoir de son à cause du qsound)

Et là je me bats avec captain commando qui démarre mais ne fonctionne pas encore niveau graphisme

Par contre, je sent que même la GAL22V10 vas être juste. A remplacer par un xilinx ou une EPROM

A suivre
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mercredi 12 Juin 2013, 07:14:23 AM
Et un de plus (mon préféré) : captain commando  :-)=
Titre: [WIP] Bricolage sur CPS1
Posté par: Thieum le Mercredi 12 Juin 2013, 10:14:13 AM

Un de mes préférés aussi, surtout parce qu'on peut jouer un bébé qui pilote un robot qui pilote un robot!

(https://gamoovernet.pixhotel.fr/pics_gamoovernet890px/20130612101331-Thieum-babycommando2.png) (https://gamoovernet.pixhotel.fr/pics/20130612101331-Thieum-babycommando2.png)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Jeudi 13 Juin 2013, 18:14:16 PM
J'attaque maintenant 3 wonders, ça risque d'être un peu plus chaud comme le GAL n'est pas dumpé pour cette version de PCB.
Dommage car le jeu démarre correctement mais les graphismes ne fonctionnent pas comme il faut.
A suivre.
Titre: [WIP] Bricolage sur CPS1
Posté par: yannick60 le Jeudi 13 Juin 2013, 18:28:57 PM
courage,si besoin j'ai strider ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Samedi 15 Juin 2013, 23:38:38 PM
Il m'aura donné du fil à retordre, mais c'est bon, un de plus ! 3 wonders  :-)= :-)=
A l'avenir il faudra que je dévie quelques adresses de plus mais bon pour le moment, c'est pas mal du tout !
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 16 Juin 2013, 14:04:51 PM
Encore un autre, king of dragons !
Bon, je voulais tester punisher mais il ne veut pas démarrer, peut être le boot chinois marchera mieux.
Sinon, la GAL22V10 n'est pas du tout du tout assez puissante, il vas falloir passer à plus couillu  :D
Maintenant il reste le son à s'occuper aussi !
A+
Titre: [WIP] Bricolage sur CPS1
Posté par: yannick60 le Dimanche 16 Juin 2013, 16:47:12 PM
Pour info mon strider tourne sur B21 et sur la même b board que toi,c'est pour ça que je te l'ai proposé. ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 16 Juin 2013, 18:31:14 PM
Salut,
Ouaip, je vais tenter strider, ce fera le huitième de la liste  ;)
A+
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mardi 18 Juin 2013, 00:01:34 AM
Ca y est, strider aussi tourne
(http://img836.imageshack.us/img836/7637/c669.jpg)

Donc pour résumer :

Reste maintenant à changer la GAL pour quelque chose de plus gros et s'attaquer au son (mais là, ça devrait être beaucoup plus facile) !

A suivre donc !
Titre: [WIP] Bricolage sur CPS1
Posté par: kroustibat le Mardi 18 Juin 2013, 09:21:44 AM
tiens question bête d'un méga n00b ... j'ai récupéré une pcb originale de sf2 et un programmateur d'eprom. comment identifier le modèle des proms pour les lire (les sf2e-1m,...)?

merci



Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Mardi 18 Juin 2013, 10:05:36 AM
C'est marqué dessus, normalemnt
C'est du 27c*** (27C4096)
Ton programmateur ne s'est pas les identifier ?
Titre: [WIP] Bricolage sur CPS1
Posté par: kroustibat le Mardi 18 Juin 2013, 12:10:55 PM
Citation de: Iro le Mardi 18 Juin 2013, 10:05:36 AM
C'est marqué dessus, normalemnt
C'est du 27c*** (27C4096)
Ton programmateur ne s'est pas les identifier ?

mon programmeur ne les identifie pas malheureusement :s Et j'ai eu beau lire dessus, c'était plus de référence capcom que des références puces
Titre: [WIP] Bricolage sur CPS1
Posté par: dlfrsilver le Mercredi 19 Juin 2013, 23:49:59 PM
juste pour info, j'ai mis sur arcade system un topic ou y a mes roms cps1 patchées....

si la C-board est la CPS-B-21, le driver video de mame donne les valeurs.

Après ce qu'il faut savoir c'est qu'un jeu CPS1 peut faire des verifications matérielles, (comprendre l'équivalent pour ceux qui connaissent l'amiga ou l'atari ST d'un copylock).

la C-board est doté d'une puce "programmable d'usine". Vous pouvez pour protéger un jeu cps1 tout frais en mettant les adresses materielles qui affichent les layers du jeu dans une ram volatile.... Sans parler, et c'est de loin le plus difficile, des checksums (une saloperie qu'on trouve sur les jeux amiga et atari ST aussi....sauf qu'au lieu d'en avoir 5 ou 10, un jeu CPS1 voir un jeu QSOUND peut facile en avoir plus de 60! genre saturday night slamasters ou son upgrade en multijoueur (je suis toujours dessus, et j'ai pas fini....)

Vous voyez tout de suite ou je veux en venir.... je parle des jeux CPS-1 a pile, héhéhé :)

genre knights of the round, y a genre presque 70 ou 80 modifications à faire dans le code programme du jeu. sur les 70 ou 80 modifs, y a pas loin de 20 checksums.....

C'est un quoi un checksum sur un jeu CPS-1 protégé ? c'est une instruction 68000 qui bien souvent va utiliser de maniere indirecte un registre matériel. je vous donne un exemple, le registre de base
pour afficher les layers, c'est $12C0. la layer 1 ca peut etre $12C4, la layer 2 $12C8 et la layer 3 la somme de $12C0 + octetlayer1+octetlayer2+octetlayer3 ! le jeu va verifier l'octet (ex : $C4 et $C8) et ça dans un programme allez le chercher ! XD

je posterais ici en détails toutes les modifs pour knights of the round pour que vous vous fassiez une idée :)

EDIT : j'ai passé 20 minutes à checker Willow :)

y a au minimum 23 modifications a faire, et pas de bol, ils ont utilisé des checksums avec vérification
des registres matériels en mode indirect....

voici ce que j'ai utilisé pour trouvé les valeurs à changer :

        ctrl    priority masks      palctrl      layer enable masks  */
CPSB03 : 0x30,{0x2e,0x2c,0x2a,0x28},  0x26,    {0x20,0x10,0x08,0x00,0x00}

CPSB01 : 0x26,{0x28,0x2a,0x2c,0x2e},  0x30,    {0x02,0x04,0x08,0x30,0x30}

base register $800140 (registre immuable sur toutes les cartes CPS1)

     
la base pour comprendre :

registre de base pour toutes les fonctions matérielles = $800140
registre de controle de la palette = $800140+30 = $800170
registre de controle d'affichage des layers = $12C0 (registre fixe sur toutes les carte CPS1)

Willow :
$12C0+20=$12E0 (affichage layer 1)
$12C0+10=$12D0 (affichage layer 2)
$12C0+08=$12C8 (affichage layer 3)
$12C0+20+10+08=$12F8 (affichage layer 1,2,3 en même temps... si si si :) )

Strider :
$12C0+02=$12C2 (affichage layer 1)
$12C0+04=$12C4 (affichage layer 2)
$12C0+08=$12C8 (affichage layer 3)
$12C0+02+04+08=$12CE (affichage layer 1,2,3 en même temps... si si si :) )

willow :
Priority Mask 1 = $800140+2E=$80016E
Priority Mask 2 = $800140+2C=$80016C
Priority Mask 3 = $800140+2A=$80016A
Priority Mask 4 = $800140+28=$800168

strider :
willow :
Priority Mask 1 = $800140+28=$800168
Priority Mask 2 = $800140+2A=$80016A
Priority Mask 3 = $800140+2C=$80016C
Priority Mask 4 = $800140+2E=$80016E

registre de contrôle de la palette
Willow : $800140+26=$800166
Strider : $800140+30=$800170

Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Jeudi 20 Juin 2013, 23:24:42 PM
Salut,
Comme je te l'ai dit par MP, merci énormément pour tes explications !  ^-^
Alors, je suis en train d'essayer de comprendre le désuicidage de king of dragon pour apprendre le fonctionnement.

Voici donc la définition de mame pour la C board par défaut et celle avec la protection :

 438  /*                     CPSB ID    multiply protection      unknown      ctrl     priority masks   palctrl    layer enable masks  */
 452  #define CPS_B_21_DEF 0x32,  -1,   0x00,0x02,0x04,0x06, 0x08, -1,  -1,   0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} // pang3 sets layer enable to 0x26 on startup
 454  #define CPS_B_21_BT2  -1,   -1,   0x1e,0x1c,0x1a,0x18,  -1, 0x0c,0x0a,  0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x30,0x08,0x30,0x00,0x00}


J'ai compris la plupart des changements dans le code grâce à tes explications, mais je bute sur certaines.

1er exemple:

ROM CODEE
00001DB8: 303C 12F8       move.w  #$12f8, D0
00001DBC: 33C0 0080 0160  move.w  D0, $800160.l

ROM DECODEE
00001DB8: 303C 12CE       move.w  #$12ce, D0
00001DBC: 33C0 0080 0166  move.w  D0, $800166.l

Je comprends que le $800166 qui devient $800160 est dû à la variable CTRL qui passe de $26 à $20.
Par contre, le $12F8 qui correspondrait à $12C0 + $30 + $8 donc soit à layer 1 + layer 2 ou layer 2 + layer 3.
On voit que ça a été remplacé par $12ce = $12c0 + $2 + $4 + $8 donc layer 1 + layer 2 + layer 3. Est-ce parce que tu avais un doute sur quelle layer était utilisée ?


2eme exemple

ROM CODEE
000023C4: 33C0 0080 015E  move.w  D0, $80015e.l
000023CA: 33C1 0080 015C  move.w  D1, $80015c.l
000023D0: 2039 0080 0158  move.l  $800158.l, D0

ROM DECODEE
000023C4: 33C0 0080 0140  move.w  D0, $800140.l
000023CA: 33C1 0080 0142  move.w  D1, $800142.l
000023D0: 2039 0080 0142  move.l  $800142.l, D0

Là.... je ne comprends pas beaucoup... voir même rien, d'où sortent ces valeurs ? Elles apparaissent aussi à d'autres endroits.
Car si on retranche $800140, on ne retombe sur aucune des valeurs du tableau des priority mask à ajouter...

3e exemple

ROM CODEE
00005A8C: 1B7C 0001 1EF0  move.b  #$1, ($1ef0,A5)
...
00009D86: 1039 0000 E254  move.b  $e254.l, D0

ROM DECODEE
00005A8C: 1B7C 0000 1EF0  move.b  #$0, ($1ef0,A5)
...
00009D86: 103C 002C       move.b  #$2c, D0
00009D8A: 4E71            nop


Pourquoi écrire 0 dans le PPU ? Et la deuxième portion, est-ce pour faire sauter une protection ?

Idem ici, est-ce pour ne pas utiliser certaines fonctions du PPU :

ROM CODEE
000106BC: 33FC 1D6B 0080  move.w  #$1d6b, $80014c.l
         014C
000106C4: 33FC 21C2 0080  move.w  #$21c2, $80014a.l
         014A

ROM DECODEE
000106BC: 4E71            nop
000106BE: 4E71            nop
000106C0: 4E71            nop
000106C2: 4E71            nop
000106C4: 4E71            nop
000106C6: 4E71            nop
000106C8: 4E71            nop
000106CA: 4E71            nop



Bon, j'arrête là, ça fait pas mal de questions  :D

A bientôt
Titre: [WIP] Bricolage sur CPS1
Posté par: dlfrsilver le Samedi 22 Juin 2013, 16:51:06 PM
Citation de: aje_fr le Jeudi 20 Juin 2013, 23:24:42 PM
Salut,
Comme je te l'ai dit par MP, merci énormément pour tes explications !  ^-^
Alors, je suis en train d'essayer de comprendre le désuicidage de king of dragon pour apprendre le fonctionnement.

Voici donc la définition de mame pour la C board par défaut et celle avec la protection :

 438  /*                     CPSB ID    multiply protection      unknown      ctrl     priority masks   palctrl    layer enable masks  */
 452  #define CPS_B_21_DEF 0x32,  -1,   0x00,0x02,0x04,0x06, 0x08, -1,  -1,   0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} // pang3 sets layer enable to 0x26 on startup
 454  #define CPS_B_21_BT2  -1,   -1,   0x1e,0x1c,0x1a,0x18,  -1, 0x0c,0x0a,  0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x30,0x08,0x30,0x00,0x00}


J'ai compris la plupart des changements dans le code grâce à tes explications, mais je bute sur certaines.

1er exemple:

ROM CODEE
00001DB8: 303C 12F8       move.w  #$12f8, D0
00001DBC: 33C0 0080 0160  move.w  D0, $800160.l

ROM DECODEE
00001DB8: 303C 12CE       move.w  #$12ce, D0
00001DBC: 33C0 0080 0166  move.w  D0, $800166.l

Je comprends que le $800166 qui devient $800160 est dû à la variable CTRL qui passe de $26 à $20.
Par contre, le $12F8 qui correspondrait à $12C0 + $30 + $8 donc soit à layer 1 + layer 2 ou layer 2 + layer 3.
On voit que ça a été remplacé par $12ce = $12c0 + $2 + $4 + $8 donc layer 1 + layer 2 + layer 3. Est-ce parce que tu avais un doute sur quelle layer était utilisée ?

explication : tu as vu la difference dans les valeurs pour l'activation des couches ?
ce qui se passe, c'est que suivant la C-board, l'activation ou l'affichage et enchainement des couches ne fonctionne pas pareil :) dans le cas que tu cites, la rom avec le fichier config maintenu en vie avec la pile active toujours la layer 1 et 3 en même temps, de facon obligatoire. Seule la layer 2 peut etre affichée individuellement. Mais comme le système est très souple, quand on modifie les valeurs pour convertir le jeu pour le C-board CPS-B-21 par défaut (sans pile quoi :) ) on doit respecter ce système.
donc on prend $12C0 (registre de base des layers) et on ajoute $02+$04+08$ pour activer les trois couches. sur la config protégée par pile, $30 n'active pas la layer 1+3 ou ou 2+3 mais bien les layers 1 ET 3, puisque $30 est la valeur qui les active toutes les deux ! donc par rapport à la config normale, ça revient a qu'on affiche les couche 1+3 ($30) + la couche 2 ($08) soit si on regarde de plus près les couches 1,2,3 en même temps. Donc forcément, pour le mode normal, on utilisera les les trois valeurs d'activation de layer 1,2,3 soit $02,$04,$08.


Citation
2eme exemple

ROM CODEE
000023C4: 33C0 0080 015E  move.w  D0, $80015e.l
000023CA: 33C1 0080 015C  move.w  D1, $80015c.l
000023D0: 2039 0080 0158  move.l  $800158.l, D0

ROM DECODEE
000023C4: 33C0 0080 0140  move.w  D0, $800140.l
000023CA: 33C1 0080 0142  move.w  D1, $800142.l
000023D0: 2039 0080 0142  move.l  $800142.l, D0

Là.... je ne comprends pas beaucoup... voir même rien, d'où sortent ces valeurs ? Elles apparaissent aussi à d'autres endroits.
Car si on retranche $800140, on ne retombe sur aucune des valeurs du tableau des priority mask à ajouter...

normal, je t'ai pas encore expliqué ce que c'est, tout simplement parce que strider et willow ne sont pas concernés par ce genre de cas de figure. ici tu as a faire a ce que les gens de mame appelent des protections par multiplication. le PPU spécial utilisé ici possède des registres matériel en plus.
la routine que tu me montres en est une regarde : ($800140+1e=$80015E, $800140+1c=$80015C, $800140+18=$800158). les adresses pour la protection par multiplication ont donc été changées. Si tu le fais pas, ton jeu il va foirer un truc violent :)

Citation
3e exemple

ROM CODEE
00005A8C: 1B7C 0001 1EF0  move.b  #$1, ($1ef0,A5)
...
00009D86: 1039 0000 E254  move.b  $e254.l, D0

ROM DECODEE
00005A8C: 1B7C 0000 1EF0  move.b  #$0, ($1ef0,A5)
...
00009D86: 103C 002C       move.b  #$2c, D0
00009D8A: 4E71            nop


Pourquoi écrire 0 dans le PPU ? Et la deuxième portion, est-ce pour faire sauter une protection ?

ah super, pour ça on verra plus tard. Faut déjà que tu comprennes comment le reste fonctionne.
Ici c'est un accès en mode indirect.

Citation
Idem ici, est-ce pour ne pas utiliser certaines fonctions du PPU :

ROM CODEE
000106BC: 33FC 1D6B 0080  move.w  #$1d6b, $80014c.l
         014C
000106C4: 33FC 21C2 0080  move.w  #$21c2, $80014a.l
         014A

ROM DECODEE
000106BC: 4E71            nop
000106BE: 4E71            nop
000106C0: 4E71            nop
000106C2: 4E71            nop
000106C4: 4E71            nop
000106C6: 4E71            nop
000106C8: 4E71            nop
000106CA: 4E71            nop



Bon, j'arrête là, ça fait pas mal de questions  :D

A bientôt

normal la encore je ne t'ai pas expliqué ce que c'est. Pourtant si tu regardes bien, tout est indiqué
dans les 2 lignes que tu as copié du driver vidéo de mame :)

A bientôt :)
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Samedi 22 Juin 2013, 20:09:38 PM
J'aime bien les mecs qui débarquent de n'importe où sur le forum et te mettent une claque :D
Chapeau <:)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr 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  <:)
Titre: [WIP] Bricolage sur CPS1
Posté par: dlfrsilver le Dimanche 23 Juin 2013, 01:20:35 AM
Citation de: Iro le Samedi 22 Juin 2013, 20:09:38 PM
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
Titre: [WIP] Bricolage sur CPS1
Posté par: th_vador 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 ^-
Titre: [WIP] Bricolage sur CPS1
Posté par: olschool le Dimanche 23 Juin 2013, 11:50:39 AM
Moi je suis FAN !!!

un grand merci à vous tous

^-^

Titre: [WIP] Bricolage sur CPS1
Posté par: kaneda56 le Dimanche 23 Juin 2013, 18:36:54 PM
Pareil, je n'entrave fichtre rien mais je kiffe ^-
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro 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 :)
Titre: [WIP] Bricolage sur CPS1
Posté par: dlfrsilver le Dimanche 23 Juin 2013, 22:52:11 PM
Citation de: Iro 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 :)

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.
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr 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
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr 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)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr 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 :

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 ?
Titre: [WIP] Bricolage sur CPS1
Posté par: nc333 le Jeudi 27 Juin 2013, 10:02:58 AM
Citation de: aje_fr le Mercredi 26 Juin 2013, 23:41:04 PMQu'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 ?
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr 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+
Titre: [WIP] Bricolage sur CPS1
Posté par: dlfrsilver le Vendredi 28 Juin 2013, 00:56:17 AM
Citation de: aje_fr 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+

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).
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Vendredi 28 Juin 2013, 13:24:29 PM
Citation de: dlfrsilver le Vendredi 28 Juin 2013, 00:56:17 AM
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
Titre: [WIP] Bricolage sur CPS1
Posté par: Bonky0013 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 ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 30 Juin 2013, 01:24:17 AM
Ca avance, ça avance  :D
Reprogrammation des eproms :
(http://imageshack.us/a/img189/1760/e9rl.jpg)

Varth US :
(http://imageshack.us/a/img191/3339/lvii.jpg)
(http://imageshack.us/a/img547/7325/vqo9.jpg)

Varth Jap :
(http://imageshack.us/a/img845/9760/8txv.jpg)
(http://imageshack.us/a/img16/756/0uug.jpg)

Area 88 jap :
(http://imageshack.us/a/img221/8739/8m6u.jpg)
(http://imageshack.us/a/img580/8497/cn39.jpg)

Final Fight :
(http://imageshack.us/a/img46/1516/i5jb.jpg)
(http://imageshack.us/a/img59/3438/t39t.jpg)

Capcom World Quiz 2 :
(http://imageshack.us/a/img443/5861/7t0i.jpg)
(http://imageshack.us/a/img203/1605/q1la.jpg)


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 ;-)
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Dimanche 30 Juin 2013, 07:00:51 AM
superbe !!!  ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: TylerDurden67 le Dimanche 30 Juin 2013, 08:29:59 AM
Reflection a deux francs six sous

Tu vas te créer un boot,avec menu?
Dans ce cas la,tu peux pas via software réallouer tes adresses suivant le jeu choisi?
Je fesais ca jadis sur atari,j'ai peut être encore des sources qui trainent si cela t'intéresse.

Apres ,je traine toujours sur devpac  via steem,j'ai pas trouvé(cherché est le terme plus approprié) d'équivalent sur windows
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 30 Juin 2013, 11:32:33 AM
Je ne sait pas trop....
Pour créer un boot menu directement sur la carte, ce n'est pas si simple, il faut créer des ROMS GFX pour les lettres à afficher, créer un soft spécifique sur le 68000, ensuite pouvoir sélectionner le jeu en faisant un jump où il est tout ça en espérant que le plan mémoire soit assez grand pour tous les accueillir, et que dans chaque jeux, il n'y ai pas des jump relatifs et absolu en même temps...
Bref, un peu compliqué, l'autre solution est peut être comme sur le 14 in 1, faire une carte additionnelle qui s'intercale sur le jamma et c'est elle qui affiche le menu et sélectionne le jeu.
Ou bien, solution la plus basique, un rotacteur ou des dipswitchs...
A+
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mardi 02 Juillet 2013, 00:34:01 AM
Bon, la bonne nouvelle, ma conversion de Willow fonctionne sur hard réel :
(http://imageshack.us/a/img5/4977/8rlz.jpg)

(http://imageshack.us/a/img594/2087/p56a.jpg)

(http://imageshack.us/a/img542/8745/uucb.jpg)

Et la un peu moins bonne nouvelle...
Pour le moment j'ai été obligé de faire le test sur une autre B-board (identique à l'originale de willow)
(http://imageshack.us/a/img855/9448/svkw.jpg)

Vas falloir investiguer  ;D
Titre: [WIP] Bricolage sur CPS1
Posté par: golani le Samedi 24 Août 2013, 22:47:05 PM
hello,
i speak german write here english-
i hope you understand me.

i have a question about the gal 16 chip.

i have also a street fighter 2  b board 90629B and wont to convert
to GnG
is it possible to get the file from you?
please let me know.
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Vendredi 06 Septembre 2013, 20:40:44 PM
(http://img28.imageshack.us/img28/5656/k8o0.jpg)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mercredi 25 Septembre 2013, 22:46:14 PM
Salut'

Bon, mon dernier message n'a pas intrigué les foules  :(

Je vais être obligé d'en dévoiler un peu plus  :-\

Voici ce que j'ai reçu il y a quelques jours  :D

(http://imageshack.us/a/img703/5561/o7pn.jpg)

Petit tour sous le fer à souder :
(http://imageshack.us/a/img706/2756/8pc5.jpg)

(http://imageshack.us/a/img7/1920/a0m5.jpg)


Et première déconvenue, qu'est ce qui ressemble plus à un E qu'un F... bref, un connecteur inversé, une autre petite erreur de schéma et voici ce que ça donne une fois corrigé :
(http://imageshack.us/a/img15/5378/mfht.jpg)

Et.... Ca marche !!!!!  :-)= :-)= :-)=
Bon, pour le moment ça démarre, j'ai aussi les musiques, il faut maintenant recoder proprement le CPLD qui décode les graphismes mais le principal fonctionne (rom programme, rom son, liaison entre la c board et le reste)
Je fais le test pour le moment avec street fighter 2 (eh oui, il n'y a besoin que de ces proms pour un sf2)

Pour le moment c'est surtout un proto, il y aura une version définitive plus tard quand tout sera débogué.

Et petite dédicace pour aganyte, j'ai prévu un emplacement pour un PIC18F au cas où.

Ca vas être plus simple pour faire des sets phoenix  :D

Voilà, voilà, la suite au prochain épisode
Titre: [WIP] Bricolage sur CPS1
Posté par: _n3o_ le Mercredi 25 Septembre 2013, 23:04:08 PM
Assez grandiose il faut le dire :D
A quand les pcb pour cps2 parce que les 18in1 sont devenu hard a trouver ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: Maitre_Poulpi le Mercredi 25 Septembre 2013, 23:34:31 PM
 :P

Ca m'en bouche un coin encore une fois...
Titre: [WIP] Bricolage sur CPS1
Posté par: speedsterharry le Mercredi 25 Septembre 2013, 23:39:21 PM
(http://www.reactionface.info/sites/default/files/images/tumblr_lo2zqb6h5P1qzsyre.gif)
Titre: [WIP] Bricolage sur CPS1
Posté par: Bonky0013 le Jeudi 26 Septembre 2013, 00:52:54 AM
 :-)= :-)= :-)=

Je l'aime déja cette board  ;)

^-
Titre: [WIP] Bricolage sur CPS1
Posté par: olschool le Jeudi 26 Septembre 2013, 07:35:17 AM
Citation de: Bonky0013 le Jeudi 26 Septembre 2013, 00:52:54 AM
:-)= :-)= :-)=

Je l'aime déja cette board  ;)

^-

Salut chris

moi aussi


^- ^-^ :-)= ^- ^-^ :-)= ^- ^-^ :-)=

Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Jeudi 26 Septembre 2013, 07:39:32 AM
oh putain  :o
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Jeudi 26 Septembre 2013, 07:56:01 AM
 ((:s

sacrément impressionnant !

(http://img28.imageshack.us/img28/5656/k8o0.jpg)

:-*

d'ailleurs, ton avatar marche encore ?

edit : yeah, il est revenu...
Titre: [WIP] Bricolage sur CPS1
Posté par: AsPiC le Jeudi 26 Septembre 2013, 08:34:10 AM
(http://p3.storage.canalblog.com/39/15/935221/74298566.gif)
Titre: [WIP] Bricolage sur CPS1
Posté par: Mutation le Jeudi 26 Septembre 2013, 08:46:28 AM
Magnifique les B boards de secours ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: kroustibat le Jeudi 26 Septembre 2013, 09:01:44 AM
impressionant comme d'habitude  ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 29 Septembre 2013, 10:40:39 AM
Merci à tous  :-\

Alors quelques explications pour les curieux.

Les GFX sont maintenant stockés que sur deux eproms par jeux, les données graphiques font 32 bits donc il fallait deux eproms de 16 bits.
J'utilise des 27C322 qui peuvent contenir 4M chacune, la majorité des jeux utilise "seulement" 4M de graphisme, donc on peut dire que deux eprom de ma carte peuvent contenir 2 jeux.

Pareil pour les EPROMs prog, chaque jeux nécessite en moyenne 1M de code, ce qui fait qu'une 27C322 peut contenir 4 jeux.

Vu le nombre d'EPROM, ont pourrait arriver à 16 jeux sur cette carte, si ils ont tous seulement 4M de graphisme (donc exit les SF2 CE, etc) ou alors mettre moins de jeux mais avec des jeux plus gros.

L'EPROM pour le Z80 a été remplacée par une 27C160 pouvant elle aussi contenir 16 fois le code d'origine.

Les sons ont stockés aussi dans une 27C322. C'est une EPROM 16 bits, les sons sont en 8 bits, donc j'utilise des "switch" pour sélectionner soit le poids fort, soit le poids faible de l'EPROM. Ca permet d'éviter de mettre deux 27C160 qui fonctionneraient en 8 bits à la place.

Les GAL ont toutes disparues et ont été remplacés par un CPLD. Pour le moment j'utilise une version 5V, ça permet de simplifier le schéma, mais celui que j'ai est tellement vieux que je suis obligé de programmer avec un vieux PC avec port parallèle. A l'avenir, je le remplacerais par un plus récent supportant la programmation par programmateur usb.
Voici le coeur :
(http://imageshack.us/a/img716/5930/x9ik.jpg)
Maintenant que deux EPROM uniquement servent pour les GFX, il a fallu entièrement revoir la programmation du CPLD (et se mettre au VHDL au passage  ;D)

La galère pour le programmer (un vieux toshiba sous windows 95)
(http://imageshack.us/a/img7/7127/c5o5.jpg)

Et le résultat pour deux jeux, sans le son. On pourrait même mettre les versions JAP et ETC avec cette config :
(http://img46.imageshack.us/img46/2091/84yb.jpg)

Et le résultat :  :-)=
(http://imageshack.us/a/img29/4880/mmew.jpg)

Je ne sais plus qui disait qu'il fallait titiller les américains et anglais, m'en vais les embêter  :D

A+
Titre: [WIP] Bricolage sur CPS1
Posté par: Aganyte le Dimanche 29 Septembre 2013, 11:01:15 AM
Bon, je débarque après la guerre mais bravo  ^-^, cette carte est magnifique. Je serais curieux de connaitre son coût de réalisation.

Et puis le Toshiba sous Windows 95... :-* J'aimerai tellement me trouver le même  :'(

Edit :

Citation de: aje_fr le Dimanche 29 Septembre 2013, 10:40:39 AM
Je ne sais plus qui disait qu'il fallait titiller les américains et anglais, m'en vais les embêter  :D

Ça doit être moi  =:))
Titre: [WIP] Bricolage sur CPS1
Posté par: gottlieb le Dimanche 29 Septembre 2013, 11:11:00 AM
 :-)= :-)= :-)=

J'en suis sur le cul de voir des réalisations pareil  :-* :-* :-*

Un grand bravo  :10: :10:

Gottlieb
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Dimanche 29 Septembre 2013, 12:26:44 PM
CPS1, reloaded...

chapeau bas  :-**
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Dimanche 29 Septembre 2013, 12:53:30 PM
Madre mia   :-)=

Bon tu nous fais la même chose pour la A Board   =:))
Titre: [WIP] Bricolage sur CPS1
Posté par: susumu le Dimanche 29 Septembre 2013, 13:06:49 PM
Fiouuu énorme, super boulot, tu a réaliser toi-même les schémas du b-board ? (rapport a ton avatar + nom sur le b-board)

Plus qu'a réaliser les différents PCB sans composant de chaque type (PCB Nintendo, taito, non-jamma, etc..) pour se faire soi même les jeux qu'on veut obtenir a moindre cout, surtout vue le prix de certain, comme bubble bobble originale jap a plus de 200 euro >:(
Titre: [WIP] Bricolage sur CPS1
Posté par: Aganyte le Dimanche 29 Septembre 2013, 13:08:34 PM
Oui, et juste après une lindberg fait maison...

:fleche:
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 29 Septembre 2013, 13:33:15 PM
Citation de: Iro le Dimanche 29 Septembre 2013, 12:53:30 PM
Madre mia   :-)=

Bon tu nous fais la même chose pour la A Board   =:))

Ce qui me tenterait bien c'est de tenter la C board  :D Mais bon, on verra plus tard !
Faudrait se plonger bien dans les sources mame pour mieux comprendre son fonctionnement interne.

Citation de: susumu le Dimanche 29 Septembre 2013, 13:06:49 PM
Fiouuu énorme, super boulot, tu a réaliser toi-même les schémas du b-board ? (rapport a ton avatar + nom sur le b-board)
Oui, schéma, routage,...

Citation de: susumu le Dimanche 29 Septembre 2013, 13:06:49 PM
Plus qu'a réaliser les différents PCB sans composant de chaque type (PCB Nintendo, taito, non-jamma, etc..) pour se faire soi même les jeux qu'on veut obtenir a moindre cout, surtout vue le prix de certain, comme bubble bobble originale jap a plus de 200 euro >:(
Franchement ça serait loin d'être rentable, tu dois pas connaitre le prix de revient d'une carte électronique.
Si c'est trop cher, il y a les bootleg  :D
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Dimanche 29 Septembre 2013, 13:54:35 PM
Citation de: aganyte le Dimanche 29 Septembre 2013, 13:08:34 PM
Oui, et juste après une lindberg fait maison...

:fleche:
roh le taquin :D
Titre: [WIP] Bricolage sur CPS1
Posté par: Aganyte le Dimanche 29 Septembre 2013, 14:02:35 PM
Désolé, j'ai pas réussi à me retenir  :-\
Titre: [WIP] Bricolage sur CPS1
Posté par: spectroman le Dimanche 29 Septembre 2013, 15:35:52 PM
bravo  :10:, super boulot.

Tu as utilisé quel soft pour la schématique et le routage?

Titre: [WIP] Bricolage sur CPS1
Posté par: HerosSuperMan le Dimanche 29 Septembre 2013, 16:09:09 PM
bien joué
<:)
Titre: [WIP] Bricolage sur CPS1
Posté par: Wax le Dimanche 29 Septembre 2013, 20:05:30 PM


Franchement Bravo  :10:
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Lundi 30 Septembre 2013, 23:21:34 PM
Et bien celui là, il m'aura fait ch.er !!!!
Les noms qui ne correspondent pas dans mame, le GAL câblé différemment, et moi qui oubli une inversion sur un signal, mais c'est bon, je lui ai fait la peau !

Même nombre d'EPROM mais un jeu en plus !
(http://img196.imageshack.us/img196/5254/0umo.jpg)
Titre: [WIP] Bricolage sur CPS1
Posté par: CkurcK le Mardi 01 Octobre 2013, 00:46:25 AM
 ((:s

:10:
Titre: [WIP] Bricolage sur CPS1
Posté par: olschool le Mardi 01 Octobre 2013, 08:11:44 AM
Mais ou vas t'il s'arrêter !!

:o

un grand bravo

^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mardi 08 Octobre 2013, 23:31:36 PM
Salut à tous'
L'encodage du CPLD et des EPROM a bien avancé !  =:))
Voici pour le moment sa config :

(http://img51.imageshack.us/img51/1672/qjgf.jpg)

Et ce qui tourne dessus :


Willow :
(http://img818.imageshack.us/img818/5621/zc6l.jpg)

Daimakaimura :
(http://img163.imageshack.us/img163/4088/4d5r.jpg)

Captain Commando :
(http://img7.imageshack.us/img7/4391/0ep3.jpg)

Strider :
(http://imageshack.us/a/img812/7991/d053.jpg)

3 wonders :
(http://imageshack.us/a/img833/3421/d8rv.jpg)

Street Fighter 2 CE
(http://imageshack.us/a/img689/7721/o8wc.jpg)

Area 88 :
(http://img543.imageshack.us/img543/4296/mhhq.jpg)

King Of Dragons :
(http://imageshack.us/a/img18/9205/u88w.jpg)

Knight of the Round :
(http://imageshack.us/a/img18/7530/k2m9.jpg)

Final Fight :
(http://imageshack.us/a/img46/5174/kxyq.jpg)

Megaman :
(http://imageshack.us/a/img826/6390/r642.jpg)

Et la ROM test :
(http://imageshack.us/a/img593/4391/prkc.jpg)


Ouf !

Et il y a encore deux jeux dedans à corriger (pang 3 et SF2WW) et il y aura encore la place pour un autre !

A+
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Mercredi 09 Octobre 2013, 07:31:06 AM
Bon, tu vends çà combien ??
:D
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Mercredi 09 Octobre 2013, 07:39:41 AM
toujours aussi impressionant
Titre: [WIP] Bricolage sur CPS1
Posté par: _n3o_ le Mercredi 09 Octobre 2013, 08:26:21 AM
C'est ... MAJEUR ... ! ! !
C'est reelement une superbe avancée car là au moins c'est pas du "a la chinois"

Si seulement on pouvais avoir le meme truc sur MVS (et pas avoir des tonnes de hacks pourris)

Une version "baston" pourrait etre sympa aussi, ou alors par themes :D

Une carte plateformes
une carte baston
une carte beat em all

Enfin ca c'est si il y a pas de place pour une peut tout le monde :p
En tout cas je suis megafan !!  :-*

PS: c'est quel chip Xilinx ? je connais pas trop mais t'as regardé du coté des programmateurs pour xbox360 (supernand, nand-X ou ne serais ce qu'un JTU ? si t'as besoin je peut t'en filer un j'en ai plusieurs, et je pense que le JTU peut faire l'affaire pour prog en USB. De meme si tu as besoin d'un autre cable LPT j'ai ca qui traine dans un coin ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: Bonky0013 le Mercredi 09 Octobre 2013, 21:59:30 PM
C'est magnifique  ^-^

La liste de jeu me file la trique grave  =:))

Beau boulot  <:)
Titre: [WIP] Bricolage sur CPS1
Posté par: the_vidy le Vendredi 29 Novembre 2013, 17:19:05 PM
Alors là je suis sur le cul!
C'est incroyable ce qui ce passe sur gammoover!!

Ça fait un moment que je n'étais pas passé sur le forum mais il y a pas à dire c'est vraiment ici qu'il y a des supers projets arcade.

Continuez c'est vraiment génial.
Titre: [WIP] Bricolage sur CPS1
Posté par: Braintrash le Samedi 25 Janvier 2014, 13:05:22 PM
Des nouvelles de ce WIP formidable ?
Titre: [WIP] Bricolage sur CPS1
Posté par: purplec1 le Samedi 03 Mai 2014, 00:24:28 AM
bump Des nouvelles de ce WIP formidable ?
Titre: [WIP] Bricolage sur CPS1
Posté par: Braintrash le Samedi 03 Mai 2014, 09:49:49 AM
Bravo pour ce bump. ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: cedricbionic le Samedi 03 Mai 2014, 10:21:13 AM
Bravo, c'est exceptionnel d'en être arriver là !   ^-^   ça donne envie  :o   :-)=

D'ailleurs avec spectroman, suite à un RT on à chopper 2 Originaux de Carrier Air Wing, une version US et une version JAP donc US NAVY.

spectroman étant Très calé en électronique...

Donc THE question, peut-on faire la même chose avec nos pcb =?= :D




EDIT : Bon j'ai eu spectroman au tel, c'est pas possible, il faut un SF2CE  >:(

Faites comme si j'avais rien dit, je sors  :fleche:
Titre: [WIP] Bricolage sur CPS1
Posté par: DespaX le Samedi 03 Mai 2014, 12:00:41 PM
impressionant le boulot !  ^-^ ^-^
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Dimanche 04 Mai 2014, 08:06:02 AM
Citation de: cedricbionic le Samedi 03 Mai 2014, 10:21:13 AM
EDIT : Bon j'ai eu spectroman au tel, c'est pas possible, il faut un SF2CE  >:(
Faites comme si j'avais rien dit, je sors  :fleche:
C'est possible en bricolant le GAL
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 04 Mai 2014, 10:30:47 AM
Salut,

Oui, désolé, ce projet traine, traine, traine...
Il faudrait que je le termine, mais bon, en l'état il marche quand même, même si ça ne parait pas fini.
Les gars au Freeplay ont même pu le tester  :D
C'est surtout la sélection du jeu qu'il faut que je boucle, pour le moment, c'est par dipswitch, le mieux serait d'avoir un menu, c'est sur ça qu'il faut que je bosse.
Mais bon, j'ai un WIP qui vas durer à vie qui est apparu entre temps et qui vient d'avoir un an, et celui ci me prends énormément de temps  ;D

Quand à carrier air wing, c'est bien plus compliqué qu'un simple gal, il faut recoder tous les jeux car la c board est différente.

Mais c'est promis, un jour je le finirai, j'espère bientôt d'ailleurs

A+
Titre: [WIP] Bricolage sur CPS1
Posté par: Braintrash le Dimanche 04 Mai 2014, 10:32:06 AM
(http://jasonknowsbeer.files.wordpress.com/2013/07/shut-up-and-take-my-money.jpg)

Preum's sur la liste !
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Dimanche 04 Mai 2014, 10:35:17 AM
Citation de: Braintrash le Dimanche 04 Mai 2014, 10:32:06 AM
(http://jasonknowsbeer.files.wordpress.com/2013/07/shut-up-and-take-my-money.jpg)

Preum's sur la liste !

Tu es très loin d'être preum's  :D :D :D :D
Titre: [WIP] Bricolage sur CPS1
Posté par: Braintrash le Dimanche 04 Mai 2014, 10:35:50 AM
 :'(
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Dimanche 04 Mai 2014, 15:37:45 PM
Je trouve que c'est bien les dipswitch...
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Dimanche 04 Mai 2014, 20:22:21 PM
Citation de: aje_fr le Dimanche 04 Mai 2014, 10:30:47 AM
Quand à carrier air wing, c'est bien plus compliqué qu'un simple gal, il faut recoder tous les jeux car la c board est différente.
Ah oui exact , j'ai confondu avec le gal
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mardi 11 Novembre 2014, 13:54:22 PM
Pour ceux qui ne voyagent pas trop entre forums, la suite de ce projet est rendue ici :
Neo-arcadia (http://www.neo-arcadia.com/forum/viewtopic.php?f=14&t=45917)
J'essaierai tout de même de poster les avancé aussi ici si ça en intéresse certains.

Voici ce qu'est devenu le projet :
(http://img15.hostingpics.net/pics/270874WP20141106185748Pro.jpg)
Titre: [WIP] Bricolage sur CPS1
Posté par: cedricbionic le Mardi 11 Novembre 2014, 15:36:33 PM
J'avais déjà vu la news sur NA  :D


arf, ça promet je pense que ça va intéresser du monde ici aussi  ^-^

Chapeau aje, entre ton CPS1 all in one et le CPS2 de Darksoft, on va être servi  :-)=


Edit: mets nous la photo avec l'écran oled allumé  :-*
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Mardi 11 Novembre 2014, 16:12:20 PM
Pareil, dès lors que tu seras en mesure de passer à une seconde passe, je serais éminemment intéressé.
Comme beaucoup d'autres je pense  :-[
Titre: [WIP] Bricolage sur CPS1
Posté par: AsPiC le Mardi 11 Novembre 2014, 19:33:19 PM
Bordel énorme ça ! Ba alors tu nous fait des cachotterie :ang:

Bravo pour la prouesse technique en tous cas ^-
Titre: [WIP] Bricolage sur CPS1
Posté par: Iro le Mardi 11 Novembre 2014, 20:13:41 PM
oh oh   ((:s
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Mardi 11 Novembre 2014, 23:16:45 PM
Citation de: AsPiC le Mardi 11 Novembre 2014, 19:33:19 PM
Bordel énorme ça ! Ba alors tu nous fait des cachotterie :ang:

Bravo pour la prouesse technique en tous cas ^-
Je t'avais dit que ça m'embêtait que ce WIP n'était pas terminé  ;D

@cedricbionic, une petite photo (mais bon, c'est à peu près la même que sur NA), je mettrais bien une image par jeu, mais j'ai peur de la place en ROM et surtout... Je suis pas très doué en traitement/design d'image
(https://gamoovernet.pixhotel.fr/pics_gamoovernet890px/20141111231544-aje_fr-OLED2.jpg) (https://gamoovernet.pixhotel.fr/pics/20141111231544-aje_fr-OLED2.jpg)
Titre: [WIP] Bricolage sur CPS1
Posté par: funkycochise le Mercredi 12 Novembre 2014, 07:57:01 AM
Citation de: aje_fr le Mardi 11 Novembre 2014, 23:16:45 PM
@cedricbionic, une petite photo (mais bon, c'est à peu près la même que sur NA), je mettrais bien une image par jeu, mais j'ai peur de la place en ROM et surtout... Je suis pas très doué en traitement/design d'image
Ya des gens talentueux pour ça par ici.
Mais effectivement la taille exigée pour les images peut être un problème.
Une petite miniature  :-*

c'est quelle résolution l'écran ?
Titre: [WIP] Bricolage sur CPS1
Posté par: _n3o_ le Mercredi 12 Novembre 2014, 09:31:44 AM
Si besoin d'un coup de main graphique hesite pas aje_fr ;)
Titre: [WIP] Bricolage sur CPS1
Posté par: aje_fr le Vendredi 21 Novembre 2014, 23:50:01 PM
Tiens, encore une grosse avancée sur ce projet  :-)=

Une C board de magic sword (PPU en B13)
(http://img15.hostingpics.net/pics/732705WP20141121232501Pro.jpg)

Qui fait tourner :
(http://img15.hostingpics.net/pics/398297WP20141121232341Pro.jpg)

(http://img15.hostingpics.net/pics/322756WP20141121232820Pro.jpg)

Captain commando, varth, sfzero.... Enfin pas mal (quelques bugs encore sur SF2) ! Et donc spécialement ceux protégés par système de multiplication alors que le ppu installé ne le supporte pas  :roll:

En gros, il est maintenant possible d'utiliser n'importe quelle C board.   :roi:

Il faut que je fasse un menu de configuration pour ça maintenant.

Maintenant vous comprenez pourquoi le connecteur du kick harness est sur la b board  ;D
Titre: [WIP] Bricolage sur CPS1
Posté par: Chelnov le Vendredi 21 Novembre 2014, 23:59:05 PM
Quand je pense que dans mon " bureau bordel atelier " seul la nuit je me prends pour un killer après avoir suivi le tuto pour le 15 khz et m'extasie devant mon pixel perfect... Et je vous ton boulot Aje... Respect... en espérant te croiser un jour pour avoir une discussion sur tes projets auxquels je ne comprendrai pas grand chose mais dont je me delecterai quand même ! Respect.
Titre: [WIP] Bricolage sur CPS1
Posté par: olschool le Samedi 22 Novembre 2014, 08:39:52 AM
 :-)=  :-)=  :-)=  :-)=
Titre: [WIP] Bricolage sur CPS1
Posté par: pet le Samedi 06 Décembre 2014, 13:07:04 PM
Tu tourne aux stéroïde????
C'est impressionnant  ^- ^-^ :-)=
j'ai lu sur NEO-ARCADIA encore BRAVO
tu ne voudrais pas t'essayer aux flippers :?
Titre: [WIP] Bricolage sur CPS1
Posté par: Mutation le Lundi 27 Avril 2015, 18:01:43 PM
Citation de: aje_fr le Vendredi 28 Juin 2013, 13:24:29 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

Déterrage mais merci pour ces éclaircissements.

Mega Twins n'a rien de spécial à part les priority masks, l'adresse de contrôle et les masques d'activations des layers, la palette et la somme de vérif d'affichages des layers 1, 2, 3 à éditer (PPU B-14 vers 01)?

#define CPS_B_14  0x12,{0x14,0x16,0x18,0x1a},0x1c, {0x08,0x20,0x10,0x00,0x00}

#define CPS_B_01  0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30}