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

krHACKen 05/02/2018 09h59

J'ai trappé tout ce que j'ai pu sur MGS FR, sans succès.
Spoiler

:(

ShaoliAss 05/02/2018 10h23

Citation:

[E1000200]
80018024 0000
8001802C 0000
80018060 0000
80018068 0000
80018110 0000
80018118 0000
8001814C 0000
80018154 0000
80092534 0000
80092954 0000
80092A14 0000
80093EF0 0000
Euh... j'avais trouvé que 3 adresses avec E1000200 :heu:

Citation:

[E1000220]
800765B4 0000
80079D5C 0000
800D9580 0000
800DF98C 0000
Ce truc me dit qq chose...
T'as tenté 800765B4 0020 ?

J'ai vu qq chose de similaire dans les codes de chris.

krHACKen 05/02/2018 11h43

Ça donnerait quelque chose sur ton MGS FR ça ?
D00178B0 0000
800178B0 3050
D00178B2 0000
800178B2 A420
D00178C8 0000
800178C8 3090
D00178CA 0000
800178CA A420

ShaoliAss 05/02/2018 13h44

Jteste ça en rentrant.

Par curiosité, t'ajoutes quoi à Cheat Engine Compilation ?

krHACKen 05/02/2018 13h52

Citation:

Envoyé par ShaoliAss (Message 1776732)
Par curiosité, t'ajoutes quoi à Cheat Engine Compilation ?

- Mise à jour de la liste de codes widescreen Avril 2017 -> Actuelle = fait
- Nettoyage des doublons / correction des erreurs dans les deux listes de codes = fait
- Ajout des softs = fait, et à revérifier. Je n'ai ajouté que Cheats 'N Codes (USA). Peut être qu'il y en a d'autres à foutre dans la compil'.
- Ajout des ROMs sur X-Flash = fait, je n'avais que le Game Booser Jap à ajouter.
- Ajout des codes dithering OFF = en suspend.
- Correctif/contournement des STR = pas fait. Peut être que j'essaierais...

ShaoliAss 05/02/2018 18h39

Citation:

Envoyé par krHACKen (Message 1776731)
Ça donnerait quelque chose sur ton MGS FR ça ?
D00178B0 0000
800178B0 3050
D00178B2 0000
800178B2 A420
D00178C8 0000
800178C8 3090
D00178CA 0000
800178CA A420

Wow, parfait ! :pouce: Y a juste les séquences avec le codec (touche select) où là apparemment le dithering est tjs là (si c'en est).

Jcomprends en revanche rien à comment tu as fait ce code (ni ce que signifie ce D devant certaines lignes).


Citation:

Envoyé par krHACKen (Message 1776733)
- Correctif/contournement des STR = pas fait. Peut être que j'essaierais...

STR... c'est quoi, ca ?

krHACKen 06/02/2018 05h51

Citation:

Envoyé par ShaoliAss (Message 1776737)
Y a juste les séquences avec le codec (touche select) où là apparemment le dithering est tjs là (si c'en est).

Ouais. J'ai essayé de patcher ça. Malheureusement ça fait glitcher les éléments du codec et ça ne ressemble à rien.

Citation:

Envoyé par ShaoliAss (Message 1776737)
Jcomprends en revanche rien à comment tu as fait ce code

J'ai désassemblé un dump de RAM et injecté 2 bouts d'asm dans une fonction.


Citation:

Envoyé par ShaoliAss (Message 1776737)
(ni ce que signifie ce D devant certaines lignes).

Code D = conditionnel. Le code en dessous du code D n'est appliqué que si la condition du code D est remplie.
MGS a deux exécutables. Les codes D sont là pour sécuriser l'exécutable qui ne doit pas être patché. On appelle ça une joker command, quand la condition du code D est une pression sur un bouton. Dans le cas de mes codes D pour MGS, c'est plutôt un genre de $SAFEMODE, mais qui a pour but de protéger le premier exécutable du jeu, là où le $SAFEMODE de POPStarter ne protège que contre la corruption de l'OSD (exécutable du BIOS qui affiche le logo PS) et agit en mastercode (sur tous les codes activés).
Autres exemples de code D avec MediEvil FR, qui lui aussi a deux exécutables :
Code:

Principal
D009D420 0200
3009D421 0000
Barre d'énergie
D0077BC8 0220
30077BC8 0000
Menus
D0078E64 0220
30078E64 0060

Traduction :
Code 1 : Si la valeur à 0009D420h est 0200h, écrire 00h à 0009D421h
Code 2 : Si la valeur à 00077BC8h est 0220h, écrire 00h à 00077BC8h
Code 3 : Si la valeur à 00078E64h est 0220h, écrire 60h à 00078E64h


Citation:

Envoyé par ShaoliAss (Message 1776737)
STR... c'est quoi, ca ?

FMVs. Les vidéos de publicité ou d'intro lues au début de certains Action Replay/GameShark. Même si le Cheat Engine Compilation est authoré proprement, les vidéos ne ressemblent qu'à une bouillie de pixels quelconques. Je soupçonne ces ARs de lire les vidéos depuis un LBA spécifique. Le mieux serait de patcher les EXEs pour contourner la lecture, et virer les fichiers du disque pour économiser une place non négligeable.

ShaoliAss 06/02/2018 09h11

Ok, merci pour tes explications et pour ces 2 codes. J'imagine qu'on doit pouvoir utiliser ces codes conditionnels pour solutionner ce problème.

Bon, question con, vu que j'ai retenté un dump de MGS FR avec no$psx et que j'ai bcp moins d'adresses intéressantes que celles que t'as mentionnées pour E1000200.
Pour dumper, je fais sous no$psx : Utility > Disassemble to File > Number of bytes to disassemble : 210000 (pour choper de $80000000 à $801FFFFF). Tu fais autrement ?

krHACKen 06/02/2018 11h27

C'est ps2dis qui a sorti toutes ces adresses supplémentaires après l'analyse. Il a cherché toutes les instances de .word 0xe1000200 dans la mémoire, puis a trouvé les opcodes qui pointent directement vers ces offsets. Et par conséquent, écrire la valeur 0x0000 dessus comme dans mon template 80xxxxxx 0000 causera des bugs et autres corruptions, vu que ça changera l'offset le lecture/écriture plutôt que de changer la valeur à écrire sur l'offset.
En gros, les adresses que j'ai listé ne sont utiles que si on a le désassembleur sous les yeux pour voir l'opcode qui s'y trouve.
Dans le cas de MGS, les offsets (buffers) qui contiennent les valeurs 0xE1000200 sont dans un array, donc on n'obtient pas les pointeurs directs vers 000B3050h et 000B3090h à partir d'une simple analyse. Pour faire simple, toutes les adresses de ma liste que j'ai exporté une à une m'ont été inutiles.

Sans quoi ouais, ce truc qui me servait dans le bidouillage de POPStarter et que j'ai un peu modifié cette nuit pour le fun ne me trouve que 2 chargements direct de E1000200h dans les registers (80092534 & 80093EF0), en zappant toute l'arithmétique et les conditions. Pas revérifié avec ps2dis.

ShaoliAss 06/02/2018 11h42

Ok merci - j'avoue que j'ai pas tout compris...

C'est pas portable d'une version à l'autre un hack ASM ?

Citation:

Envoyé par MGS-FR
800178A8 A423CF56 movh [r1-30AAh],r3
800178AC 94820006 movh r2,[r4+6h]
*800178B0 00000000 nop
800178B4 00431021 add r2,r3
800178B8 2442FFFF sub r2,1h
800178BC 3C01800B mov r1,800B0000h
800178C0 A422CF5A movh [r1-30A6h],r2
800178C4 03E00008 ret
*
*
800178CC 27BDFFC8 sub sp,38h


Citation:

Envoyé par MGS-UK
8001760C A423C9C6 movh [r1-363Ah],r3
80017610 94820006 movh r2,[r4+6h]
*80017614 00000000 nop
80017618 00431021 add r2,r3
8001761C 2442FFFF sub r2,1h
80017620 3C01800B mov r1,800B0000h
80017624 A422C9CA movh [r1-3636h],r2
80017628 03E00008 ret
*
*
80017630 27BDFFC8 sub sp,38h


* : repère pour moi pour retrouver tes adresses du code PAL-FR et leurs équivalents PAL-UK.

Ce qui me donne :

Citation:

$D0017614 0000
$80017614 3050

$D0017616 0000
$80017616 A420

$D001762A 0000
$8001762A 3090

$D001762C 0000
$8001762C A420
Mais ca ne fonctionne pas...

*

(Avira se met à détecter CUE2POPS comme une menace, c'est gonflant...)

*

Ok, je vois que tout n'est pas identique, me suis sans doute planté là.... (A423CF56 movh [r1-30AAh],r3 pour MGS-FR, A423C9C6 movh [r1-363Ah],r3 pour MGS-UK).

krHACKen 06/02/2018 11h54

Non, ce n'est pas portable, vu que les adresses des offsets de destinations des valeurs (offsets 800B3050 & 800B3090 sur la version FR) ne sont pas les mêmes, et que la valeur chargée dans le register (at si ma mémoire est bonne) de la fonction sur laquelle l'asm se greffe n'est peut être pas la même non plus.
Puis le sample d'asm de no$psx n'aide pas, incomplet et tout ce qui n'est pas du MIPS brut me fout mal au crane:D.
J'vais essayer de te faire un code pour le UK...

ShaoliAss 06/02/2018 12h01

Citation:

Envoyé par krHACKen (Message 1776747)
J'vais essayer de te faire un code pour le UK...

T'emmerdes pas, j'essayais juste de comprendre comment faire - jpensais qu'il y avait juste un décalage d'adresses dans 2 versions différentes d'un jeu.

krHACKen 06/02/2018 12h08

Oh au fait, les codes tu les testes aussi sous no$psx ou seulement sur POPStarter ?
Il y avait un bug critique qui touchait les codes D, qui a été corrigé dans la RIP 06. Maintenant ça devrait fonctionner mais rien n'est sûr.
Aussi, il se peut que les codes qui font une injection d'asm dans l'exe ne fonctionnent pas. C'est à cause du recompileur merdique de POPS, qui ne recompile pas forcément le code modifié par le cheat et réutilise celui d'origine.

ShaoliAss 06/02/2018 12h11

Citation:

Envoyé par krHACKen (Message 1776749)
Oh au fait, les codes tu les testes aussi sous no$psx ou seulement sur POPStarter ?
Il y avait un bug critique qui touchait les codes D, qui a été corrigé dans la RIP 06. Maintenant ça devrait fonctionner mais rien n'est sûr.
Aussi, il se peut que les codes qui font une injection d'asm dans l'exe ne fonctionnent pas. C'est à cause du recompileur merdique de POPS, qui ne recompile pas forcément le code modifié par le cheat et réutilise celui d'origine.

Seulement sous POPStarter.

krHACKen 06/02/2018 12h52

Ca devrait être ça :

Code:

D0017614 0000
80017614 2AC0
D0017616 0000
80017616 A420
D001762C 0000
3001762D 002B
D001762E 0000
8001762E A420


ShaoliAss 06/02/2018 13h15

Effectivement ce code fonctionne parfaitement. :pouce:

ShaoliAss 07/02/2018 09h01

Citation:

Envoyé par http://aybabtu.chez.com/PS1/SUPERLIST4.TXT
"Ridge Racer Type 4 (UK)"

"* Delayed Activation *" .off
C1000000 6000

"PAL2NTSC" .off
8008BDFC 0000
8008BDFE 2402

"Y-Fix" .off
800937F8 FFF8
300939A4 0000

"Dithering OFF" .off
300940E9 0000

Euh, boulette ? D'après redump et l'ID du jeu, c'est pas le UK, c'est le M5. Et on dirait que tu t'es planté en recopiant/créant le code : le tien commence par 3.

krHACKen 07/02/2018 09h16

Y'a qu'une seule version PAL de RR4. Quand il n'existe qu'une seule version PAL, même si c'est multilingue, je fous "(UK)".

Normal que le code commence par 3. Il ne fonctionne pas ?

ShaoliAss 07/02/2018 09h28

Citation:

Envoyé par krHACKen (Message 1776756)
Y'a qu'une seule version PAL de RR4. Quand il n'existe qu'une seule version PAL, même si c'est multilingue, je fous "(UK)".

Ok, j'avais pas vu.


Citation:

Envoyé par krHACKen (Message 1776756)
Normal que le code commence par 3. Il ne fonctionne pas ?

Pas testé - mais celui de Shenmue_Trilogy (ici) est le même mais commence par 8. J'imagine qu'il l'a testé :heu:

krHACKen 08/02/2018 10h06

Putain de bombe à retardement
 
J'étais complétement à l'ouest l'autre jour. Le MGS n'avait pas besoin d'asm:lol:.
À cause de la bombe dans mon équipement (le cadeau de Ocelot), il me fallait désactiver les cheats pour pouvoir la jeter et ne pas me faire sauter la gueule. Et j'oubliais de réactiver mes cheats avant de relancer:pff:. C'est idiot.

Donc en fait pour MGS, la méthode de base fonctionne pour trouver le code, à savoir choper les opcodes qui chargent E1000200h dans le register. Rien de compliqué. Pour mgs FR, le premier qui sort (30092535 0000) est le bon.
Je corrigerais la liste plus tard... ET JE VIRERAIS AUSSI CETTE SATANÉE BOMBE À RETARDEMENT DES CHEATS:grr:.

ShaoliAss 08/02/2018 17h43

:lol:

J'en profite pour te demander - comment pour RRT4 - pourquoi le code commence par 3 et non 8 ? Comment choisir entre les 2 ?

ShaoliAss 08/02/2018 20h04

Citation:

Envoyé par ShaoliAss (Message 1776760)
:lol:

J'en profite pour te demander - comme pour RRT4 - pourquoi le code commence par 3 et non 8 ? Comment choisir entre les 2 ?

*

Edit : tes bats ne me donnent aucun résultat sur un snapshot de MGS FR... :heu:

krHACKen 09/02/2018 09h00

Citation:

Envoyé par ShaoliAss (Message 1776760)
:lol:

J'en profite pour te demander - comment pour RRT4 - pourquoi le code commence par 3 et non 8 ? Comment choisir entre les 2 ?

Le code 3 écrit 1 byte;
Le code 8 écrit 2 bytes.
Vu qu'on cherche à remplacer la valeur 0200 par 0000, pas besoin d'écrire 0000 en deux bytes (code 8) vu qu'on a déjà un 00 dans la valeur. Tout ce qu'on veut faire en fait, c'est changer le 02 en 00.


Exemple en prenant le code anti-dithering de Ridge Racer Type 4 PAL :
Valeur originale à l'offset 000940E8 : 0200
On veut changer le 02 en 00. Pour que ça donne 0000. Le 02 est à l'offset 000940E9.
On prend l'adresse 000940E9, on y met le type de code 30 dessus, ce qui donne 300940E9. Et notre valeur 00, ce qui donne 300940E9 0000.

Le code 800940E8 0000 aura le même effet que 300940E9 0000 néanmoins.
C'est juste une façon de faire...


Pour savoir le quel des deux types choisir, suffit de savoir quoi patcher et avec quelle valeur.

Imaginons qu'il faut que nous fassions un code widescreen, sur un jeu qui a pour valeur originale 1999. Pour remplacer 1999 par 1333, on doit écrire deux bytes (99->33 & 19->13). Donc obligé d'utiliser un code 8. Ou bien deux codes 3 mais c'est absurde.
Exemple avec MediEvil FR :
D00F8594 1999 // original
800F8594 1333
D00F8C9C 1999 // original
800F8C9C 1333

Et pour un code widescreen avec une valeur originale 1000 à changer en 0C00, un code 3 devrait suffire.
Exemple avec Small Soldiers FR :
D00A7190 1000 // original
300A7191 000C
ça change le 10 en 0C, pour qu'au final ça donne 0C00.


Maintenant pour les codes de triches, tout dépend de comment le jeu est foutu. Imaginons un jeu qui stock la valeur de l'énergie du personnage dans un seul byte. Mieux vaut utiliser un code 3. Parce qu'en utilisant un code 8, ça écrira deux bytes, et par conséquent, ça risque de modifier la valeur d'un autre paramètre en même temps.
Un titre qui me vient à l'esprit, Resident Evil. Ce jeu a un byte qui indique l'item, et le byte juste à côté est la quantité. Avec des codes 3 on peut choisir l'item et la quantité indépendamment, et avec un code 8 on contrôle les deux en même temps.

Citation:

Envoyé par ShaoliAss (Message 1776761)
*

Edit : tes bats ne me donnent aucun résultat sur un snapshot de MGS FR... :heu:

Faut faire un glisser/déposer du snapshot sur un des batch.
Le programme accepte les snapshots de no$psx, des dumps de RAM complets (2 Mo) et les exécutables PS1.




EDIT :
Je viens de voir que demilich a trouvé mon code pour Driver 2. Content que ça marche.
Peut être que je devrais prévenir quand je réupload la liste avec de nouveaux codes anti-dithering.
Le truc c'est que je fais plusieurs choses en même temps, et que je produis les codes quand j'ai un peu de temps libre.

ShaoliAss 09/02/2018 17h22

Ok, merci pour ton explication, jpense que j'ai pigé.

Ton exemple concernant MediEvil FR m'a un peu perdu, jpensais que tu me montrais un exemple de décomposition de code 8 en deux codes 3 - mais jcomprenais pas pourquoi les 2 lignes restaient en code 8, ni pourquoi les offsets de 2 adresses n'étaient pas consécutifs... :heu::fou:

Explication simple : ton code WS sur ce jeu est différent de celui de l'archive WS d'ElPatas. J'imagine que t'as corrigé ce pb ?

Citation:

#MediEvil [PAL-France] (SCES-01492)
Comment=Not works in the POPS emu for PS2 and in the PSX, freezes in the loading screen.
----------------------------------------------------------------------------------------
GAMESHARK CODES/ACTION REPLAY CODES
----------------------------------------------------------------------------------------
//Widescreen 16:9
800F8C9C 1333

Citation:

Faut faire un glisser/déposer du snapshot sur un des batch.
C'est ce que j'ai fait... j'ai du foirer mon snapshot qq part - il est moitié moins gros que celui que t'as posté...


Citation:

Peut être que je devrais prévenir quand je réupload la liste avec de nouveaux codes anti-dithering.
Le truc c'est que je fais plusieurs choses en même temps, et que je produis les codes quand j'ai un peu de temps libre.
Jferai un tour de temps en temps sur ta liste. ;)

krHACKen 09/02/2018 18h51

Citation:

Envoyé par ShaoliAss (Message 1776778)
Ton exemple concernant MediEvil FR m'a un peu perdu, jpensais que tu me montrais un exemple de décomposition de code 8 en deux codes 3 - mais jcomprenais pas pourquoi les 2 lignes restaient en code 8, ni pourquoi les offsets de 2 adresses n'étaient pas consécutifs... :heu::fou:

Ouais, ma sortie sur la décomposition en deux codes 3 était sans rapport avec l'exemple suivant et a rendu mon exposé un peu confus.
Décomposition du code de MediEvil FR :
D00F8594 1999
300F8594 0033
D00F8594 1933
300F8595 0013
D00F8C9C 1999
300F8C9C 0033
D00F8C9C 1933
300F8C9D 0013


Citation:

Envoyé par ShaoliAss (Message 1776778)
Explication simple : ton code WS sur ce jeu est différent de celui de l'archive WS d'ElPatas. J'imagine que t'as corrigé ce pb ?
Citation:

#MediEvil [PAL-France] (SCES-01492)
Comment=Not works in the POPS emu for PS2 and in the PSX, freezes in the loading screen.
----------------------------------------------------------------------------------------
GAMESHARK CODES/ACTION REPLAY CODES
----------------------------------------------------------------------------------------
//Widescreen 16:9
800F8C9C 1333

Y'a deux exécutables dans MediEvil. Le freeze doit être due à l'absence de code D. J'ai pas testé le mien dans une vraie play ni dans POPStarter, mais c'est le même code que le sien, protégé par un code D.


Citation:

Envoyé par ShaoliAss (Message 1776778)
C'est ce que j'ai fait... j'ai du foirer mon snapshot qq part - il est moitié moins gros que celui que t'as posté...

File/Write Snapshot.
Mon programme vérifie la présence de "NO$PSX SNAPSHOT" dans l'en-tête (offset 0h) du fichier, puis scanne jusqu'à "MRAM" puis charge le contenu 12 octets plus loin sur 2 mégaoctets.
Sinon il vérifie la présence de "PS-X EXE", et lit son en-tête pour savoir comment mapper le contenu.
Sinon il quitte, sans message d'erreur.
C'est un programme que j'utilisais pour des trucs persos, pour toute autre chose que l'anti-dithering. Je l'ai modifié à la barbare et il n'y a pas de message d'erreur d'implémenté.

Tu devrais vérifier ça :
Options/Emulation Setup/Files/SNA File Format = Uncompressed
Tes savedstates sont surement compressées et mon programme ne décompresse que dalle. Il prend les fichiers bruts.


EDIT :
Aussi, mes batchs sont fichus pour n'afficher que des rapports pour E1000200h. Pour certains jeux ça peut être insuffisant.
Par exemple, je viens de faire Gran Turismo 2 PAL. Il a besoin du scan de E1000240h pour enlever le dithering sur les fumées/poussières des roues de bagnoles.
En enlevant les "rem" en face de @echo [ALL] et des deux lignes suivantes, t'auras plus de résultats.

ShaoliAss 09/02/2018 20h48

Citation:

Envoyé par krHACKen (Message 1776780)
Tu devrais vérifier ça :
Options/Emulation Setup/Files/SNA File Format = Uncompressed
Tes savedstates sont surement compressées et mon programme ne décompresse que dalle. Il prend les fichiers bruts.

C'était bien ça, merci ! :pouce:

Citation:

Envoyé par krHACKen (Message 1776780)
EDIT :
Aussi, mes batchs sont fichus pour n'afficher que des rapports pour E1000200h. Pour certains jeux ça peut être insuffisant.
Par exemple, je viens de faire Gran Turismo 2 PAL. Il a besoin du scan de E1000240h pour enlever le dithering sur les fumées/poussières des roues de bagnoles.
En enlevant les "rem" en face de @echo [ALL] et des deux lignes suivantes, t'auras plus de résultats.

Ok ! Jvais avoir du temps (vacances), jvais jouer avec ton petit programme... :)

ShaoliAss 10/02/2018 11h05

(discussion splitée ici - ca faisait 4 pages de hors-sujet dans le topic POPStarter...)

krHACKen 10/02/2018 11h28

http://aybabtu.chez.com/kHn/E1.ZIP
Bugfix. Les codes "[OLDSCHOOL SHIT]" de type "// A" ne s'affichaient pas avec certains jeux (dont le prototype de MediEvil), à cause d'une instruction jump and link mal calculée:shy2:.

EDIT : Quelques infos sur "[OLDSCHOOL SHIT]", vu que le nom de nerd n'est pas vraiment explicite.
C'est une variante du code qu'on utilisait pour foutre l'affichage en PAL/NTSC autrefois, sauf que là c'est sensé désactiver complétement le dithering, sans avoir à réinscrire de nouvelles valeurs E1h.
Dans la grande majorité des cas, il faut rebooter le jeu pour que le code prenne effet. Peu de jeux invoquent cette fonction en cours de jeu.

krHACKen 10/02/2018 11h44

http://aybabtu.chez.com/RANDOMPIX/45245321.jpg
MediEvil m'emmerde. J'ai eu beau désactiver le dithering, il y en a toujours par endroits, selon l'angle de caméra:heu:.

krHACKen 10/02/2018 12h39

"SUPERLIST" actualisée :
+ "Gran Turismo (JP)"
+ "Gran Turismo (UK)" [PAL MULTI]
+ "Gran Turismo (v1.0 US)"
+ "Gran Turismo (v1.1 US)"
+ "Gran Turismo 2 (UK)" [PAL MULTI]
+ "MediEvil (Regist. Us. Demo 02)" [c'est le prototype inclus dans Registered Users Demo 02]

Modification des codes existants pour :
+ "Tekken (v1.0 JP)"
+ "Tekken (v1.1 JP)"
Il leur manquait un code D et un code 3 pour le mini-jeu. Maintenant ils sont complets.


Fuseau horaire GMT +1. Il est actuellement 18h34.

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

Integrated by BBpixel ©2004-2022, jvbPlugin

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