Metagames

Metagames (https://www.metagames-eu.com/forums/)
-   Playstation (https://www.metagames-eu.com/forums/playstation/)
-   -   PS1 dithering OFF codes (https://www.metagames-eu.com/forums/playstation/ps1-dithering-off-codes-135746.html)

ShaoliAss 02/02/2018 20h13

PS1 dithering OFF codes
 
[HS]

@krHACKen : t'as vu ça ?

https://forums.pcsx2.net/attachment.php?aid=65591

https://forums.pcsx2.net/attachment.php?aid=65592

Je suis parvenu à faire le chemin inverse de ce que le gars a fait pour créer ces codes.

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 ?

krHACKen 02/02/2018 20h23

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.

ShaoliAss 02/02/2018 20h32

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" ?

krHACKen 02/02/2018 20h47

Citation:

Envoyé par ShaoliAss (Message 1776719)
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.

ShaoliAss 02/02/2018 21h29

Merci, jcorrigerai !

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).

krHACKen 02/02/2018 21h52

Citation:

Envoyé par ShaoliAss (Message 1776721)
se situant dans la séquence 023C00024234

Code:

lui v0, $????
ori v0, v0, $0200

Citation:

Envoyé par ShaoliAss (Message 1776721)
se situant dans la séquence 043C00028434

Code:

lui a0, $????
ori a0, a0, $0200

Citation:

Envoyé par ShaoliAss (Message 1776721)
se situant dans la séquence 033C00026334

Code:

lui v1, $???
ori v1, v1, $0200

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 ?

ShaoliAss 02/02/2018 22h04

Citation:

Envoyé par krHACKen (Message 1776722)
Code:

lui v0, $????
ori v0, v0, $0200


Code:

lui a0, $????
ori a0, a0, $0200


Code:

lui v1, $???
ori v1, v1, $0200

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.
https://twitter.com/covell_chris/sta...38617802842112

ShaoliAss 02/02/2018 22h06

Ah ben je viens de voir que Chris a posté un tuto...

PlayStation 1 Dithering Removal

krHACKen 05/02/2018 09h44

Mouais. J'ai fait un peu joujou avec ça, sans trop aller loin dans le truc.
Pas ma tasse de thé comme hack.


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.

ShaoliAss 05/02/2018 09h55

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...


Fuseau horaire GMT +1. Il est actuellement 21h59.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

Integrated by BBpixel ©2004-2021, jvbPlugin

Version française #23 par l'association vBulletin francophone
© 2003-2018 MetaGames. Tous droits réservés.