Commentaires

Commentaires

Commentaire

Administrateur
Avatar
@Wawann : oui les prix sont délirants sur eBay, même Le Bon Coin. Un peu comme le retrogaming. Je surveille quand même les ordinosaures "en panne", des fois c'est acceptable comme tarif compte tenu de la rareté.

Commentaire

Administrateur
Avatar
@Wawann : Faut déboguer en pas à pas la ligne "MechaIdentRaw.cfd = strtoull(&data[1], NULL, 16); avec un point d'arrêt."
Vérifier le contenu de data et la sortie de strtoull.
Je suis en Visual Studio 2019 v142.

Ta valeur de cfc n'est pas la même que la mienne : 0x050501.

Au pire tu forces via le default, c'est un peu sale mais bon...

Code CPP :
static void MechaGetNameOfMD(void) {
    switch(ConMD)
    {
        //////////////////////////////////
        default:
            ConType = MECHA_TYPE_40;
            PlatShowEMessage("MD Name: Unknown MD version. Forced to MECHA_TYPE_40.\n");
    }
}

Commentaire

Administrateur
Avatar
@Wawann : La raison du pourquoi du comment cela ne fonctionne pas est relativement simple. La valeur "cfd" est stockée en mémoire sous forme d'un entier non signé 32 bits (u32).

Code CPP :
struct MechaIdentRaw {
    u32 cfc, cfd;
    u16 VersionID;    //As the updates for B, C and D chassis are seen to be changing this ID, it's probably not a hardware model number. Known within the SONY tools as ADD0x010
};



La chaîne retournée par la commande cfd sur une V9 : "00304082327" provoque un dépassement de capacité (out of the range) dans strtoul. On peut le deviner aisément à l'affichage du CFD: 0xffffffff (= 4294967295) dans la vidéo en version 1.12 quand cela ne fonctionne pas.

Code CPP :
static int MechaCmdInitRxModelHandler(const char *data, int len) {
    char temp[5];
    //Model information: TestMode, MD number (i.e. 00C10024 -> TestMode.193, MD1.36).
    MechaIdentRaw.cfd = (u32)strtoul(&data[1], NULL, 16);
    strncpy(temp, data + 1, 4);
    temp[4] = '\0';
    ConTM = (u8)strtoul(temp, NULL, 16);
    strncpy(temp, &data[5], 4);
    temp[4] = '\0';
    ConMD = (u8)strtoul(temp, NULL, 16);
    return 0;
}
 


3 modifications à faire pour forcer :

- Partie 1/3 Modifier le type en ULL :

Code CPP :
struct MechaIdentRaw {
    unsigned long long cfc, cfd;
    u16 VersionID;    //As the updates for B, C and D chassis are seen to be changing this ID, it's probably not a hardware model number. Known within the SONY tools as ADD0x010
};
 


- Partie 2/3 Remplacer la fonction strtoul par strtoull (Long Long Integer)

Code CPP :
static int MechaCmdInitRxModelHandler(const char *data, int len) {
    char temp[5];
    //Model information: TestMode, MD number (i.e. 00C10024 -> TestMode.193, MD1.36).
    MechaIdentRaw.cfd = strtoull(&data[1], NULL, 16);
    strncpy(temp, data + 1, 4);
    temp[4] = '\0';
    ConTM = (u8)strtoul(temp, NULL, 16);
    strncpy(temp, &data[5], 4);
    temp[4] = '\0';
    ConMD = (u8)strtoul(temp, NULL, 16);
    return 0;
}
 


- Partie 3/3 : Cette valeur cfd sert à déterminer la valeur de ConMD dans "MechaCmdInitRxModelHandler". La variable ConMD sert ensuite à déterminer la variable ConType dans "MechaGetNameOfMD". La valeur obtenue était 35 pour la mienne, j'ai donc rajouté le pavé/cas "35" pour affecter de forcer ConType = MECHA_TYPE_40.

Code CPP :
static void MechaGetNameOfMD(void) {
    switch(ConMD)
    {
        //////////////////////////////////
        case 40:
            ConType = MECHA_TYPE_40;
            break;
        case 35:
            // John-John 2021 - ConMD value returned by a 50004 model
            // GH-023 CFD=00304082327 --> 0x4082327
            // Select the most advanced MECHA_TYPE --> 40
            // Experimental DANGER EEPROM !
            // Only for JITTER MEASUREMENT !
            PlatShowEMessage("Dragon Mechacon detected. Experimental !\n");
            ConType = MECHA_TYPE_40;
            break;
        default:
            ConType = 0xFF;
            PlatShowEMessage("MD Name: Unknown MD version.\n");
    }
}
 

Commentaire

Administrateur
Avatar
@Visiteur 29/05/2022 à 11h36 : Non, aucune idée à part vérifier les réglages habituels.

Commentaire

Administrateur
Avatar
@CabriDIY :

Citation :
Je me demandais s'il y avait quelque chose de similaire pour les PS2 Slim ?


A ma connaissance non, personne n'a creusé plus que cela PMAP pour les PS2slims, car plus de réglage de tilt radial ou tangentiel mécanique à opérer, l'intérêt est donc quasiment nul. Faut sortir l'oscillo. On peut toujours se servir du logiciel TestLens à lancer avec FreeMCBoot comme évoqué dans les commentaires ici : /news/11-consoles-ps1ps2/317-incursion-dans-le-monde-de-la-playstation2/

https://archive.org/details/TestLens

Sauf que TestLens travaille a un niveau plus haut car il utilise les fonctions API classiques offertes pour les développeurs dans les jeux. Cela ne permet pas d'afficher les valeurs brutes de niveau d'erreur du MechaCon. Ça sert juste à vérifier que le lecteur fonctionne dans les clous pour l'utilisateur final (débit de lecture) surtout sur la partie sled (temps d'accès), mais on ne peut savoir si la lecture se fait vraiment bien derrière sans correction d'erreur. :/

Citation :
Car j'en ai quelques une avec des lentilles HS et les lentilles de remplacement ne sont pas à la hauteur :/


Tout comme pas mal de KSM-440xxM chinois... il vaut mieux hélas cannibaliser des consoles HS pour un autre motif afin de trouver des blocs d'origine d'occasion qui fonctionnent mieux que des chinois neufs qui sont pas très bien fabriqués. Tout comme aussi les VAM1201/1202 Philips c'est la loterie dans tout ce que l'on peut acheter sur le net. Faut tomber sur le bon fournisseur.

Citation :
Il y a tellement peu de réglage sur les lecteurs de PS2 Slim ...


Plus aucun réglage c'est quelque part tant mieux car pas à s'embêter lors du remplacement, on remplace le bloc et tout le reste qui est tracking/focus gain/offset est automatique. Le revers de la médaille du tout automatique c'est que ça réclame une mécanique et une optique en bon état, si le bloc installé est un peu naze (sale, usé, mal fabriqué), la moindre hors tolérance pour les circuits de lecture signifie donc pas de rattrapage possible via des réglages. En conséquence "essaie encore" : mettre un autre bloc plus acceptable.

Je n'ai pas tenté "PS2 Lens Changer" sur mes slims. Aucune idée si le changement de valeurs d'EEPROM a un quelconque effet comme à l'époque des fat.

Commentaire

Administrateur
Avatar
@Jérémy : Ces châssis sont de 1995/1996. Cette TV a été fabriquée en semaine 43 de 1996.
Sur tous les appareils Philips de cette époque on peut le déduire depuis le numéro de série sur l'étiquette imprimée :
HJ00 9643 132183

Commentaire

Administrateur
Avatar
@MrObélixlefou :

Normalement on fait toujours la pompe à eau en même temps, c'est ce que j'ai toujours demandé (si elle n'était pas inclus dans le devis).

Citation :
ce ne sont pas les kilometre qui mettent a genou les pompe a eau sur les moteur psa mais le changement de tension entre une courroie neuve et une ancienne ...


Oui c'est ce que j'avais lu sur les forums. Maintenant je n'ai pas de tensiomètre pour faire dans les règles de l'art.

Citation :
si ça fuit ben tu connais le protocole au pire


Oui et puis il y a fuite et fuite, ça dépendra de comment ça fuira :) Maintenant j'ai nettement moins d'appréhension.

Commentaire