Mais pour l'instant, on est un peu limité dans les recherches, vu qu'on ne connait qu'une seule valeur à changer pour éliminer cet effet de croisillon. :/
Sur son twitter (@https://twitter.com/covell_chris/status/946047748180140032) Chris dit ceci...
Citation:
Playstation 1 Dithering #2: the hardware stores 24-bit textures but displays them as 15-bit. Bit 9 of GP0(E1h) - GPUSTAT controls this, and games choose which textures to dither. Sadly, some 2D pixel art games have the dithering ON, making for an unsightly mess.
Une idée de comment utiliser ça pour trouver d'autres valeurs à changer ?
Yep j'ai vu ça. Et ça tombe pile au moment où je suis entrain de foutre Cheat Engine Compilation à jour.
Nope, j'connais pas de meilleure méthode. Faudrait que je désassemble quelques PS-X EXEs pour faire joujou avec GPUSTAT, mais j'suis trop occupé avec d'autres trucs. Puis toutes mes PS1 sont hors service.
Ces 2 utilisateurs disent Merci à krHACKen pour ce poste utile:
Ok merci. J'espère que les codes avec qq lignes vont m'aider à trouver d'autres séquences. Jviens de tomber sur 2 jeux (MGS et Soul Reaver) pour lesquels je n'élimine cet effet que partiellement - avec 1 seule ligne de code.
Au fait, tant qu'on y est... est-ce que "80038AF0 0" = "80038AF0 0000" ?
Au fait, tant qu'on y est... est-ce que "80038AF0 0" = "80038AF0 0000" ?
80038AF0 0 n'est pas une syntaxe valide.
Une valeur hexa 8bits, c'est 00.
Vu que le code commence par 8, ça veut dire que la valeur est 16bits, donc 0000.
Ouais, ça veut surement dire 80038AF0 0000 = écriture constante de 16 bits.
Pour une écriture constante de 8 bits (donc 1 octet), ça serait 30038AF0 0000.
Si je trouve des astuces au sujet du dithering, je te les filerais. Mais je ne m’inscrirais pas sur le forum de pcsx2. Y'a un parasite là-bas, et je préfère me tenir à l’écart de lui.
Ces 2 utilisateurs disent Merci à krHACKen pour ce poste utile:
Jsens que ca va être complexe pour certains jeux. Ex : Castlevania Chronicles (J).
8003ED68 0000 / 0200 -> BG ; 0200 se situant dans la séquence 023C00024234
800406E8 0000 / 0200 -> FG, sprites ; 0200 se situant dans la séquence 043C00028434
80043748 0000 / 0200 -> BG ; 0200 se situant dans la séquence 033C00026334
Chercher directement 0200 me donne bcp trop de résultats et pas moyen de changer en direct la valeur depuis Cheat Engine (d'après un gars de PCSX2).
Ce sont des instructions très courantes.
En recherchant ça dans la RAM ou l'exe et en patchant ces instructions en direct, vous vous donnez beaucoup trop de mal.
Les fonctions liées au dithering n'ont vraiment que ça en commun ? Vous n'avez pas d'autres paternes de code à rechercher ?
Ce sont des instructions très courantes.
En recherchant ça dans la RAM ou l'exe et en patchant ces instructions en direct, vous vous donnez beaucoup trop de mal.
Les fonctions liées au dithering n'ont vraiment que ça en commun ? Vous n'avez pas d'autres paternes de code à rechercher ?
A l'heure actuelle, non.
Chris Covell avait posté aussi ça sur twitter mais j'ai pas compris...
Citation:
I'll work on it, but each game is slightly different. Basically, instructions with data E1000200 need to be changed to E1000000. Sometimes the lower 16 bits is done via an OR or a set bit, so there's no one solution for all games.
Mouais. J'ai fait un peu joujou avec ça, sans trop aller loin dans le truc.
Pas ma tasse de thé comme hack.
Spoiler
Je vais quand même attendre que vous produisiez une liste de codes consistante avant de publier Cheat Engine Compilation pour que tout le monde soit content.
Si t'as un moment et que tu peux jeter un oeil sur MGS, jme casse les dents dessus.
J'imagine qu'il faut utiliser le 3eme exemple du tuto pour y parvenir - mais jcomprends pas bien comment utiliser VRAM viewer.
D'autant plus que pour l'exmple qui est pris - SOTN - y a pas besoin, E1000200h donne direct le résultat...