Wie macht man einen PAL2NTSC Patch?

Am besten mit dem DOS Programm PALPAR bzw. PALPAR2.
Dieses Programm gibt direkt einen Gamebuster Code aus.
Für DOS-Unkundige gibt es dazu die Windowsoberfläche PALPAR-Wizard.
Ich habe einfach eine Batchdatei mit dem Inhalt:
PALPAR %1% >C:\PALPAR.TXT auf den Desktop gezogen.

Was macht man, wenn PALPAR und PALPAR2 keinen Code finden?

Vermutlich ist das Programm komprimiert oder verschlüsselt.
Starte den XLINK Trainer, wenn du im eigentlichen Spiel mit
der 3D Darstellung bist.
Starte den Befehl: PALPAR C:\MEM.BIN >C:\PALPAR.TXT
Wenn PALPAR bzw. PALPAR2 immer noch nichts finden,
ist das Spiel nicht mit SONY's PSYQ kompiliert (programmiert) worden.
Dann versuche es mit dem Tool Modechanger von NAPALM.
Leider erstellt dieses Tool keinen Code,
sondern eine gepatchte Datei CHANGED.EXE.
Lade diese und die Originaldatei in einen HexEditor und führe einen Vergleich aus.
Merke dir die geänderte Byte-Sequenz und suche sie mit dem Filedisassembler
N64PSX oder mit dem XLINK Memory Editor.


Was macht man, wenn der PALPAR Code den Grafikprozessor zum Absturz bringt?

Meistens erfolgt der Absturz nur bei einem LIVE-Patch.
Starte das Spiel mit dem Xploder Code neu.
Hilft das nicht, versuche den Code, den PALPAR2 erzeugt.
Manchmal hilft auch das nicht, z.B. bei: "Need For Speed II SLES00658".
Hier gilt das Motto: je früher, desto besser.
PALPAR findet den Code $800c0b28 0000, der aber das Bild zusammenbrechen läßt.
Starte wieder den Filedisassembler und suche nach

800c0b28

Du kommst zu der Subroutine, die auch PALPAR2 findet:
80092a64: 3c02800c ...< lw $v0,[0x800c0b28]
80092a6c: 3c01800c ...< sw $a0,[0x800c0b28]
80092a74: 03e00008 .... jr $ra
80092a78: 00000000 .... nop
80092a7c: 3c02800c ...< lw $v0,[0x800c0b28]
80092a84: 03e00008 .... jr $ra
80092a88: 00000000 .... nop


Nun suche nach einem Verweis auf den Beginn dieser Subroutine, also 80092a64:

8008d0f4: 34030001 ...4 ori $v1,$zero,1
8008d0f8: af830ae0 .... sw $v1,0x0ae0($gp)
8008d0fc: 10600002 ..`. beqz $v1,0x8008d108
8008d100: 00002021 ! .. addu $a0,$zero,$zero
8008d104: 34040001 ...4 ori $a0,$zero,1 ; PAL=1
8008d108: 0c024a99 .J.. jal 0x80092a64 ; springe zu PALPAR2


Betrachte die Boole'sche Operation, die den Wert 1 für PAL lädt.
Dies verhindern wir nun mit dem Patch:

"Need For Speed II SLES00658"
PAL2NTSC SyncFixed
$3008d104 0000

Dieses FAQ wurde geschrieben von Nachbrenner