Posté le 22/05/2014 à 18:02 Membre depuis le 11/10/2004, 478 messages
Après avoir subit maintes pressions (couteau sous la gorge, menaces de mort, offres de petits gâteaux) de la part de monsieur Kuk, j'ai voulu franchir le pas pour me mettre à la NGP(C).

Je précise que je suis un gros noob, je ne connais pas du tout la scène (il y en a une ?), je n'ai joué qu'à Puzzle Bobble et je n'ai lu que 2 fois les documents du kit de dev wink

Comme mon idée de départ était de porter mon jeu GB Airaki sur NGPC, je voulais en premier lieu voir si la production de cartouches pouvait se faire sans encombres.
A ce moment là, Kuk m'a indiqué que certains homebrewers avaient été bloqués a cette étape a cause d'une certaine "protection".
Sachant que les cartouches officielles n'avaient qu'une puce de flash, j’étais surpris.

Bref, après la lecture de quelques sujets ici et sur des sites étrangers, il s’avère que c'est loin d’être un problème.

L'objet de ce présent sujet, c'est d'avoir votre avis concernant la proposition d'une solution:

J'ai actuellement un modèle de carte qui peut accommoder des jeux de 2Mo, ainsi que la définition logique du bidule magique qui permet de faire passer le dit jeu.
Les jeux de 4Mo sont pas loin, il faut juste que je teste en situation réelle.

Ça serait mentir de dire que c'est obscur et complexe, mais vu que visiblement personne n'est allé jusque là pour une production (sauf pour des linkers), je pensais proposer contre une rémunération raisonnable:

-Soit un pack entier (fichiers GERBER, fusemap, liste des composants) sous forme de fichiers pour en faire ce que bon vous semble.
-Soit un kit avec un programmateur et un lot de cartes toutes faites. Prêt a l'usage.
-Soit juste un lot de puces pré-programmées.

Une fois encore, mon but n'est pas de me remplir les poches, mais d’amortir les quelques heures de boulot et surtout de voir de nouvelles cartouches apparaitre smile
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 22/05/2014 à 18:45Edité par O_o le 04/09/2017 à 14:15 Membre depuis le 01/04/2002, 22005 messages
-
Posté le 23/05/2014 à 01:12 Membre depuis le 06/09/2002, 18630 messages
love arme
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/
Posté le 23/05/2014 à 01:13 Membre depuis le 27/04/2006, 58403 messages
Kuk, arrête de maltraiter ce pauvre Furrtek embarrassed
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 23/05/2014 à 01:19 Membre depuis le 06/09/2002, 18630 messages
tu veux le remplacer ? fesses fouet
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/
Posté le 23/05/2014 à 01:57 Membre depuis le 27/04/2006, 58403 messages
J'ai déja mangé chez toi, j'estime avoir suffisamment souffert embarrassed
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 23/05/2014 à 10:25 Membre depuis le 17/09/2002, 13474 messages
Le lot de puce pré-programmé ne serait pas forcément pour l'utilisateur lambda, non ?
Sinon toutes les autres propositions me paraissent intéressantes et comme dit Orion, je trouve aussi normal que tu récupères quelque chose en échange du travail fourni. wink
Posté le 23/05/2014 à 10:42 Membre depuis le 11/10/2004, 478 messages
J'ai pas de traces des coups de fouets encore, ça va wink

Oui tout compte fait, celui qui achèterait des puces préprogrammées n'aurait probablement pas de mal à écrire le "code", ni à programmer la puce lui même... Mais les deux autres propositions valent toujours smile

Concernant le montant, je sais bien que ce n'est pas toujours évident de récupérer un minimum de bénéfice quand on produit un jeu rétro donc quand je dis "raisonnable", je veux dire "pas grand chose" tongue (Kuk pose ce couteau)
Sauf si bien sur je fournis les cartes toutes prêtes, là il y aurait des frais matériels qui ne dépendent pas de moi.
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 23/05/2014 à 11:06 Membre depuis le 06/05/2003, 318 messages
Ce serait quoi la différence avec les cartes produites par Flavor (http://flashmasta.com/) ?
Je ne vois pas trop
Posté le 23/05/2014 à 11:27 Membre depuis le 11/10/2004, 478 messages
La quantité disponible, le prix surtout, la possibilité de bloquer la carte en écriture pour empêcher de s'en servir comme cartouche flash.
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 23/05/2014 à 11:30 Membre depuis le 06/05/2003, 318 messages
et pour les sauvegardes, ce serait compatible aussi?
Posté le 23/05/2014 à 11:45 Membre depuis le 11/10/2004, 478 messages
Oui aussi. Sous réserve de toujours avoir de la flash en blocs, mais il devrait y en avoir pour quelques années encore...
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 23/05/2014 à 12:54 Membre depuis le 17/09/2002, 13474 messages
./7 J'ai oublié les mots "facile à utiliser" dans ma phrase... tongue
Donc même à les payer plus cher, je pense que oui les deux autres propositions sont plus intéressantes.
Posté le 16/06/2014 à 21:36 Membre depuis le 11/10/2004, 478 messages
J'ai reçu les cartes proto. Ben 0.2mm en trop c'est sacrément chiant !

Finalement c'était peut être trop d'espoir de recevoir des sous sur un bricolage pareil. Je vais finir par tout refiler en espérant avoir une petite donation si c'est utilisé (canette de coca, cure-dent, feuille de PQ...)
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 16/06/2014 à 21:57 Membre depuis le 27/04/2006, 58403 messages
En se cotisant, on devrait pouvoir t'offrir tout ça à la fois smile

Si ça peut te consoler, les erreurs d'épaisseur de ce genre c'est très courant en impression 3D (même "pro"), je crois que je n'ai jamais vu de pièce qui n'ait pas dû être un peu limée pour être à la bonne taille.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 17/06/2014 à 07:56 Membre depuis le 11/10/2004, 478 messages
C'est les PCBs qui sont trop épais en fait, le 1.6mm coince avec les coques originales et ne fait pas contact sans sad Je vais passer la coque à la ponceuse.

Pour la logique, voilà comment ça marche:

Les E/S avec la flash pendant le boot NGP et NGPC sont les suivantes (adresse,data):

5555 AA
2AAA 55
5555 F0 (reset)
5555 AA
2AAA 55
5555 90 (autoselect)
Lecture 0000 (ID fabricant: doit être $98, $B0, ou $EC)
Lecture 0003 (doit être $80)
Lecture 0001 (ID composant: doit être $AB (512ko), $2C (1Mo), ou $2F (2Mo). C'est important car c'est utilisé par le BIOS pour trouver la map des secteurs pendant les sauvegardes. Les jeux de 4Mo ont simplement 2x 2Mo, donc le code reste $2F)
Lecture 0002 (doit être $80)
5555 AA
2AAA 55
5555 F0 (reset)

Si ce test passe, le header est lu pour voir si un des deux strings de reconnaissance sont présents.

Pour faire fonctionner les sauvegardes, la flash doit avoir des secteurs de 64ko sinon le BIOS risque de ne pas apprécier (une 29F040 marche). Aussi important, le dernier secteur devrait dans l’idéal faire 16ko, mais s'il fait 64ko ça marche quand même. Celui ci est utilisé par le BIOS uniquement pour diverses choses que je ne comprend pas.
Il semblerait qu'il soit effacé la première fois que le jeu est lancé, ou lorsqu'il contient des données corrompues. Par exemple avec un jeu de 4Mo, le dernier secteur est à 1FC000~1FFFFF et le BIOS fait:

5555 AA
2AAA 55
5555 80
5555 AA
2AAA 55
1FC000 30

Lorsque le BIOS efface un secteur ou tous les secteurs inscriptibles (je ne sais pas si c'est utilisé, mais il en est capable), il relis le(s) secteur(s) en question en boucle pour voir s'ils sont pleins de $FF. Il y a un timeout relatif au nombre de secteurs à vérifier mais je n'ai pas calculé sa durée. Il y a aussi un nombre d'essais max.

Pour qu'un jeu démarre, il faut donc détecter quand le BIOS veut passer la flash en mode ID, désactiver la vraie flash, répondre a sa place, détecter quand le BIOS veut qu'on repasse en mode normal, et repasser la main à la flash.
Pour faire ça, je colle le bus de données entier ainsi que les 16 premiers bits d'adresse sur le CPLD.
Sur le front montant de /WR, je regarde si l'adresse est $5555. Si c'est le cas, je regarde si les données sont soit:
-$90: Un flag est mis a 1 pour dire qu'on va devoir faire taire la flash et répondre a sa place (/CS haut).
-$F0: Le flag est remis a 0 pour laisser la flash parler.
Pour savoir quelle info il faut spoofer, je regarde juste les 2 premiers bits d'adresse: si le bit 1 est a 1, réponse toujours $80. Sinon, si le bit 0 est a 1, réponse ID composant, sinon ID fabricant.

Le tout tient dans un EPM3032. Je donne le code dès que c'est propre, mais sinon ça marche smile

2mpajq0.jpg
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.
Posté le 17/06/2014 à 13:30 Membre depuis le 27/04/2006, 58403 messages
top
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 18/06/2014 à 15:03 Membre depuis le 17/09/2002, 13474 messages
Bravo pour le travail en tout cas ! smile
Posté le 18/06/2014 à 16:27 Membre depuis le 04/07/2010, 128 messages
Très impresionnant
Posté le 18/06/2014 à 16:45 Membre depuis le 06/09/2002, 18630 messages
la production Homebrew sur NGPC va pouvoir commencé love
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/
Posté le 18/06/2014 à 16:47 Membre depuis le 25/09/2004, 19400 messages
top
avatar@originalfei
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !
Posté le 19/06/2014 à 00:37 Membre depuis le 11/10/2004, 478 messages
smile
Pour le dev, il y avait toujours moyen avec un émulateur et le flashmasta non ?
Pour la prod par contre, pas vu de solution toute faite encore :<
module ngpspoof (
	FL_CE_IN,
	FL_CE_OUT,
	NGP_ADDR,
	NGP_DAT,
	NGP_WR,
	NGP_OE,
	NGP_CE
	);

	input	FL_CE_IN;
	output	FL_CE_OUT;
	input	NGP_WR;
	input	NGP_OE;
	input	NGP_CE;
	
input	[15:0] NGP_ADDR;
	inout	[7:0] NGP_DAT;
	
wire	[7:0] REG_DAT;
	wire	NGP_READ;

	reg	STATE = 0;
	
assign NGP_READ = (~NGP_OE & NGP_WR & STATE);
	assign FL_CE_OUT = READ ? 1 : FL_CE_IN;
	assign NGP_DAT = READ ? REG_DAT : 8'bzzzzzzzz;
	assign REG_DAT = NGP_ADDR[1] ? 8'h80 : NGP_ADDR[0] ? 8'h2F: 8'hEC;
	
always@(posedge NGP_WR)
	begin
		if (NGP_ADDR == 16'h5555)
		begin
			if (NGP_DAT == 8'h90) STATE <= 1; //Enter ID req
			if (NGP_DAT == 8'hF0) STATE <= 0; //Exit ID req
		end
	end

endmodule


J'ai racheté des cartes en 1mm, je les aurais dans 3 semaines...
avatarJe fais des trucs. Des fois ça marche, des fois ça marche pas.